.caf オーディオ ファイルを再生するためのコードを使用します。同じコードは iPhone 4s と iPad 2 では正常に動作しますが、iPhone 5 ではまったく再生されません...
これはコードです:
-(IBAction)checkSound:(id)sender
{
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Lunatic.caf", [[NSBundle mainBundle] resourcePath]]];
NSLog(@"%@",url);
NSError *error;
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
self.audioPlayer.numberOfLoops = 0;
self.audioPlayer.volume = 1;
NSLog(@"log audioplayer: %@",audioPlayer);
if (audioPlayer != nil)
{
[self.audioPlayer prepareToPlay];
[self.audioPlayer play];
}
if (audioPlayer.playing == NO)
{
NSLog(@"not playing, error: %@",error);
}
if([[NSFileManager defaultManager] fileExistsAtPath:@"file://localhost/var/mobile/Applications/0D3F5169-8DB1-4398-A09A-DB2FBADF57EF/myApp.app/Lunatic.caf"])
{
NSLog(@"file exist");
}
else
{
NSLog(@"file doesn't exist");
}
}
これはログ出力です:
2013-08-07 20:05:52.694 myApp[7006:907] ファイル://localhost/var/mobile/Applications/0D3F5169-8DB1-4398-A09A-DB2FBADF57EF/myApp.app/Lunatic.caf 2013-08-07 20:05:52.697 myApp[7006:907] log audioplayer: (null) 2013-08-07 20:05:52.701 myApp[7006:907] 再生していません、エラー: エラー Domain=NSOSStatusErrorDomain Code=-43 "操作できませんでした「完了できません。(OSStatus エラー -43.)」 2013-08-07 20:05:52.703 myApp[7006:907] ファイルが存在しません
ご覧のとおり、audioplayer のログには "null" が表示され、エラー ログにはエラー -43 が表示されます。繰り返しますが、iPhone 4s ではすべて正常に動作します。
なぜこれが起こっているのですか?iPhone 5 のオーディオで何か変更がありましたか? iPhone 5 の設定が音の再生を妨げている可能性はありますか? どんな助けでも大歓迎です