0

ユーザーが進む/戻るボタンを押すことができるアプリを作成しています。これらのボタンを押すたびに、現在再生中のオーディオ ファイルが停止し、別のオーディオ ファイルが開始されます。これらのファイルはすべてループしません。

次のようなコードでオーディオ ファイルを再生しています。

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 を追加したときに何か問題が発生したのでしょうか?

4

1 に答える 1

0

私の sound2.aac ファイルが何らかの形で破損したようです。アプリからファイルを削除し、プロジェクトをクリーンアップしました。次に、.aac ファイルを再度保存し、この新しい .aac ファイルをプロジェクトに取り込み、再度クリーンアップしました。再度 iPad で実行したところ、sound2.aac が完全に再生されました。

于 2013-08-02T18:39:34.753 に答える