AVAudioPlayer 不从临时文件路径播放声音

AVAudioPlayer not playing sound from temp file path

我已将录音保存到我的 Temp 目录 并且可以使用 iExplorer

进行验证

文件路径结构为TempFolder/UserID/SoundName001.wav 我保存到数据库的位是 UserID/SoundName001.wav

这是我用来播放文件的代码

@property (nonatomic, strong) AVAudioPlayer *player;

-(void) playSound: (NSIndexPath*)recordingIndex {
    NSArray *recording = [recordingArray objectAtIndex:recordingIndex.item-1];
    NSString *filePath = [NSString stringWithFormat:@"%@%@",NSTemporaryDirectory(),[recording objectAtIndex:2]];
    NSURL *recorderURL = [[NSURL alloc] initFileURLWithPath: filePath];
    self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:recorderURL error:nil];
    [self.player prepareToPlay];
    [self.player setMeteringEnabled:YES];
    [self.player setDelegate:self];
    [self.player play];
}

我设置断点和recorderURLreturns下面file:///private/var/mobile/Containers/Data/Application/0883D0DC-B1FD-4D06-A7BB-EBD9EEF5D607/tmp/1/Dog001.wav

当我调用这个方法时,没有任何反应,没有崩溃,没有声音... 我在这里遗漏了什么明显的东西吗?

您检查设备上的静音开关了吗?我认为如果静音开关打开,AVPlayer 不会播放声音。尝试输入这行代码:

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

在您的 viewDidLoad[self.player play]; 之前查看音频是否播放。