Xamarin.iOSで音声の再生が途中で止まる

効果音を実装していたのだが、なぜか再生が途中で止まる。

バックグラウンドで再生を続けている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で再生中に消されちゃったものと推測。

コメントを残す

メールアドレスが公開されることはありません。