我使用录音机在文档目录中录制和创建文件,然后使用音频播放器播放。我可以在模拟器和设备上录制它,但我不能只在设备上播放它。
请注意 1.我不播放文件中的声音,我从NSData播放(我将音乐存储到数据库中,并检索它们播放) 2.它在模拟器上工作正常但在设备上失败。
这是我播放音频的代码
- (void)playAudioWithData:(NSData *)data {
[self stopPlayingAudio];
[self stopRecordingAudio];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil];
self.audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:nil];
[self.audioPlayer play];
}
这是录音设置:
NSDictionary *audioSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat:44100],AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey,
[NSNumber numberWithInt: 1],AVNumberOfChannelsKey,
[NSNumber numberWithInt:AVAudioQualityMedium],AVEncoderAudioQualityKey,nil];
答案 0 :(得分:4)
而不是使用AVAudioSessionCategoryPlayAndRecord
尝试在录制时将音频会话设置为AVAudioSessionCategoryRecord
,然后在想要播放刚刚录制的内容时设置为AVAudioSessionCategoryPlayback
。
我在录制和播放音频时在我的应用中遇到了同样的问题,这解决了这个问题。