効果音を実装していたのだが、なぜか再生が途中で止まる。
バックグラウンドで再生を続けているBGMはちゃんと動くのに効果音だけが止まる。はまった。
最初にしていた実装はこれ。
public void StartPlayEffect(string title)
{
var url = NSUrl.FromFilename(title + ".mp3");
NSError _err = null;
var effect = new AVAudioPlayer(
url,
AVFileType.MpegLayer3,
out _err
);
effect.NumberOfLoops = 0;
effect.PrepareToPlay();
effect.Play();
}
効果音なので使い捨てで良いだろうと思ってローカル変数として実装してたのが間違い。
インスタンス変数に変えたら動いた。
おそらく参照がなくなってGCで再生中に消されちゃったものと推測。