3

AVAudioPlayerをテストするために作成した非常にシンプルなアプリがあります。Macで問題なく再生される16sのaifファイルがあります。シンプルなアプリに入れてiPhoneで実行しましたが、音が出ません。'play'をオブジェクトに送信すると成功が返され、audioPlayerDidFinishPlayingは16秒後に成功を返します。まだ音が出ない。iPhoneの音量を確認しました。問題ありません。AVAudioPlayerオブジェクトの音量が1.0に設定されていることを確認しました。誰か助けてもらえますか?

これが私のコードです

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"Soothing" ofType:@"aif"];
NSURL *playURL = [NSURL fileURLWithPath:soundPath];
NSError *error;

self.myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:playURL error:&error];
NSLog(@"About to play sound");

self.myAudioPlayer.delegate = self;
[self.myAudioPlayer prepareToPlay];
bool success = [self.myAudioPlayer play];

if (!success) {
    NSLog(@"Failed to play file");
} else NSLog(@"Looks like it succeded");
4

2 に答える 2

8

OK-理解しました。アプリのAVAudioSessionを構成していませんでした。次のように非常に単純なことをしました(Appleのサンプルコードからコピー):

[[AVAudioSession sharedInstance] setDelegate: self];
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];
if (setCategoryError)
    NSLog(@"Error setting category! %@", setCategoryError);

サウンドが再生されるようになりました。さらに、画面ロックなどを介して再生を制御する方法について多くのことを学びました。これは貴重なことです。

于 2012-09-21T15:34:19.337 に答える
0

エラーから何かが得られるかどうかを確認しましたか?

if(error) {
    NSLog( @"%@", [error localizedDescription] );
}
于 2012-09-21T15:00:31.867 に答える