「Xamarin.Mac/効果音を再生する」の版間の差分
編集の要約なし |
編集の要約なし |
||
| 73行目: | 73行目: | ||
} | } | ||
</source> | </source> | ||
==連射音== | |||
AVAudioPlayerでは1インスタンス1音の再生となる。 | |||
複数のスレッドから一斉にPlayメソッドを叩いた場合は最初の再生が終わるまで全部無効となる。 | |||
そのような場合は高速化など糞食らえで複数のインスタンスを生成する。 | |||
<source lang="csharp"> | |||
public override void MouseDown(NSEvent theEvent) | |||
{ | |||
Task.Run(() => { | |||
var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources"); | |||
var file = Path.Combine(path,"se001.caf"); | |||
var url = new NSUrl(file, isDir: false); | |||
var player = AVAudioPlayer.FromUrl(url); | |||
player.Play(); | |||
}); | |||
Console.WriteLine("click"); | |||
} | |||
</source> | |||
注意点としては複数インスタンスでの同時再生はcafファイル(Apple CoreAudio フォーマット)に限られ、mp3ファイルなどは使用できない。 | |||
mp3ファイルなどからcafファイルへの変換はMac上のターミナルから[[afconvertコマンド]]でできる。 | |||
==関連項目== | ==関連項目== | ||