我已将录制内容保存到 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];
}
我设置了一个断点,recorderURL
返回以下file:///private/var/mobile/Containers/Data/Application/0883D0DC-B1FD-4D06-A7BB-EBD9EEF5D607/tmp/1/Dog001.wav
当我调用此方法时,没有任何反应,没有崩溃,没有声音...... 我错过了一些明显的东西吗?
答案 0 :(得分:0)
您是否检查过设备上的静音开关?我认为如果静音开关打开,AVPlayer不会播放声音。尝试使用以下代码:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
在viewDidLoad
或[self.player play];
之前,查看音频是否播放。