Ios AVAudioPlayer播放在硬件上返回false

Ios AVAudioPlayer播放在硬件上返回false,ios,avaudioplayer,Ios,Avaudioplayer,我正在尝试编写一些非常简单的代码来播放音频文件。该代码在iPad2模拟器上运行良好。但是,在我的iPad2设备上,[audooPlayer play]返回false,无法听到任何音频 我尝试了.caf和.wav文件。我已重新启动iPad2并确保静音开关已关闭。非常感谢关于如何调试的任何提示 示例代码: - (void)playAudio { NSString *file = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"w

我正在尝试编写一些非常简单的代码来播放音频文件。该代码在iPad2模拟器上运行良好。但是,在我的iPad2设备上,[audooPlayer play]返回false,无法听到任何音频

我尝试了.caf和.wav文件。我已重新启动iPad2并确保静音开关已关闭。非常感谢关于如何调试的任何提示

示例代码:

- (void)playAudio {
    NSString *file = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"wav"];
    url = [NSURL fileURLWithPath:file];
    NSError *error = nil;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    if (error != nil) {
        NSLog(@"Error creating audio player: %@", [error localizedDescription]);
        return;
    }
    [audioPlayer setDelegate:self];
    if (![audioPlayer prepareToPlay]) {
        NSLog(@"Error preparing audio");
        return;
    }
    // Everything works fine up to this point
    if (![audioPlayer play]) {
        // I hit this on hardware.  Works perfect on the simulator.
        NSLog(@"Error playing audio");
        return;
    }

经过太多的调试,我终于找到了罪魁祸首。在播放音频之前,我在应用程序中录制了一些音频。根据我给你打电话的那个指南

[[AVAudioSession sharedInstance] setActive: NO error: nil];
录制完成后。这显然会导致AVAudioPlayer无法播放音频。将呼叫更改为

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];

而是解决问题。非常奇怪的是,这在模拟器中不是问题,但会导致硬件问题。

我已经在iPhone模拟器和iPhone设备(都是iOS 6.0)上测试了您的代码,效果很好!我没有iPad设备。你的错误是什么?您的
AudioPlayerDecorDicCur
有人打电话给您吗?谢谢您的帮助。你的结果帮助我意识到问题出在别处——见下面我的答案。我已经在iPhone模拟器上测试了你的代码,效果很好!但在实际设备中不起作用:)太谢谢你了,我怎么也找不到这个。