1

非常に具体的だが再現可能なケースではaudioPlayerDecodeErrorDidOccur:error:、次の NSError が発生します。

Error Domain=NSOSStatusErrorDomain Code=-50 "The operation couldn’t be completed. (OSStatus error -50.)"

これは、OpenAL も使用するゲームで発生します。OpenAL を使用してサウンドを再生していますが、ハードウェア AAC デコードを活用しようとしています。ただし、上記の発生は、OpenAL で行っていることとは関係がないようです。

これは、シーン (ゲーム モード) の切り替えを実行してから約 2 ~ 3 秒後に発生しますが、from-to シーンの特定の組み合わせでのみ発生します。これらのイベントに関連する重要なオーディオは何もしていないため、さらに奇妙です。で何もしていないことを確認しましたAVAudioPlayerが、OpenAL でも重要なことは何もしていないようです。

AVAudioPlayerを解放し、同じファイルを参照し、同じボリュームを使用し、ファイル内の同じ時間から再開する別のものに置き換えることで、これを解決しようとしました。ただし、数秒後、このプレーヤーも前述のエラーをスローします。一方、新しい曲に切り替えると、問題のない完全に機能するプレーヤーが作成されます。

私の質問は、エラー -50 はこのコンテキストで何を意味するのか、またはそれが何を意味するのかをどのように理解するのでしょうか?

(何か意味があるとすれば、ゲームは少なくとも iOS 3.1.2 で実行する必要があります)。


コードの OpenAL 部分を無効にしようとしました。それは役に立ちませんでした。

オーディオ ライブラリ コードは、 http://libxal.svn.sf.net/svnroot/libxal/trunk/で公開されています。

4

1 に答える 1

1

私たちはなんとかC++レベルで何かを台無しにすることができました。これにより、ゲームを実際にクラッシュさせることなく、シミュレータとデバイスで同じように動作することなく、AVAudioPlayerでメモリが破損した可能性があります。これを修正し、AVAudioPlayerが機能するようになりました。

于 2011-01-15T09:06:09.847 に答える