ユーザーが進む/戻るボタンを押すことができるアプリを作成しています。これらのボタンを押すたびに、現在再生中のオーディオ ファイルが停止し、別のオーディオ ファイルが開始されます。これらのファイルはすべてループしません。
次のようなコードでオーディオ ファイルを再生しています。
audioURL2 = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"sound2" ofType:@"aac"]];
audio2 = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL2 error:nil];
[audio2 play];
audio1 = nil;
audio3 = nil;
私は ARC を有効にしているので、オーディオ ファイルを明示的にリリースしていません。
ほとんどの場合、上記のコードは問題なく動作します。iPhone デバイスでも、iPhone または iPad シミュレーターでも問題は発生していません。iPad デバイスのほとんどのオーディオも機能します。
ただし、再生中にボタンに触れないようにしても、オーディオ ファイルの 1 つが完全に再生されません。このオーディオ ファイルを iPad で再生するたびに、オーディオ ファイルの先頭が聞こえますが、同じ場所で途切れます。この問題は iPad でのみ発生し、他のデバイスやシミュレーターでは発生しません。
これが私がこれまでに試したことです:
- iPadからアプリを削除しました。アプリのクリーニング、再構築、再インストール
- iPadを再起動しました
- ミュート/ソフトミュートがオフになっていることを確認
- ミュート/ソフトミュートを数回切り替えてから、ミュートをオフのままにしました
- iPadの音量を上げました
上記のそれぞれを試した後、同じオーディオ ファイルが同じ場所で途切れていることがわかりました。
これはなぜ、特定の 1 つのファイルに対してのみ発生するのですか? どうすれば解決できますか?
アップデート
ヘッダーで使用@property (strong, nonatomic) AVAudioPlayer *audio2;
してから、「strong」を「retain」に置き換えてみましたが、まだ同じ問題があります。
次に、プレイコールの前に立ち往生audio2.numberOfLoops = 1;
して、何が起こるかを確認しました。興味深いことに、audio2 は繰り返されますが、各ループは前のカットオフ ポイントで終了します。iPad ビルドに sound2 を追加したときに何か問題が発生したのでしょうか?