非常に具体的だが再現可能なケースでは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/で公開されています。