Iphone sdk 3.0 AVAudioPlayer赢得';在AVAudioRecorder之后不能播放音频文件

Iphone sdk 3.0 AVAudioPlayer赢得';在AVAudioRecorder之后不能播放音频文件,iphone-sdk-3.0,avaudioplayer,avaudiorecorder,Iphone Sdk 3.0,Avaudioplayer,Avaudiorecorder,我使用AVAudioRecorder创建了一个.caf音频文件,如果我尝试使用AVAudioPlay播放它,我在iPhone上不会听到声音(如果在模拟器中播放效果很好)。如果我关闭应用程序并重新打开文件,则播放效果良好。此外,除非关闭并重新打开我的应用程序,否则我无法在录制后调整电话音量。有什么想法吗?我对aac文件也有同样的问题。我以前使用过ima4,它工作得非常好!我想区别在于,aac是硬件解码的,ima4是软件解码的。当后面的文件被重新排序时,您是否尝试重新初始化播放器?这对我有用 Mar

我使用AVAudioRecorder创建了一个.caf音频文件,如果我尝试使用AVAudioPlay播放它,我在iPhone上不会听到声音(如果在模拟器中播放效果很好)。如果我关闭应用程序并重新打开文件,则播放效果良好。此外,除非关闭并重新打开我的应用程序,否则我无法在录制后调整电话音量。有什么想法吗?

我对aac文件也有同样的问题。我以前使用过ima4,它工作得非常好!我想区别在于,aac是硬件解码的,ima4是软件解码的。当后面的文件被重新排序时,您是否尝试重新初始化播放器?这对我有用


Markus

我对aac文件也有同样的问题。我以前使用过ima4,它工作得非常好!我想区别在于,aac是硬件解码的,ima4是软件解码的。当后面的文件被重新排序时,您是否尝试重新初始化播放器?这对我有用


马库斯也面临着同样的问题。通过将AVAudioSession类别设置为AVAudioSessionCategoryPlayback模式,解决了此问题。这是我的工作代码:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
audioSession.delegate = self;
[audioSession setCategory:AVAudioSessionCategoryPlayback error:NULL];
[audioSession setActive: YES error: nil];
另外,通过执行以下步骤确保音频录制已成功完成:

   -(void) audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag
{
    NSLog(@"Recording success:%@",flag ? @"YES" : @"NO");
}
并检查是否已添加


在您的接口声明中。

也面临同样的问题。通过将AVAudioSession类别设置为AVAudioSessionCategoryPlayback模式,解决了此问题。这是我的工作代码:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
audioSession.delegate = self;
[audioSession setCategory:AVAudioSessionCategoryPlayback error:NULL];
[audioSession setActive: YES error: nil];
另外,通过执行以下步骤确保音频录制已成功完成:

   -(void) audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag
{
    NSLog(@"Recording success:%@",flag ? @"YES" : @"NO");
}
并检查是否已添加


在您的接口声明中。

我也遇到了同样的问题。我猜问题出在录音中,因为没有应用正确的设置。我也有同样的问题。我想问题在于录制时没有应用正确的设置。这正是我的解决方案。我录制了一段音频(mp4),只有重新启动应用程序才能播放。我正在使用MPMoviePlayerController进行播放,因此我认为这是Apple的一个缺陷:在使用硬件编码时,avaudiorecorder不会通过制作新播放器来重置AVAudioSessionCategory,即使avaudiorecorder被释放、停止等。您需要手动调用setCategory:AVAudioSessionCategoryPlayback。这正是我的解决方案。我录制了一段音频(mp4),只有重新启动应用程序才能播放。我正在使用MPMoviePlayerController进行播放,因此我认为这是Apple的一个缺陷:在使用硬件编码时,avaudiorecorder不会通过制作新播放器重置,即使avaudiorecorder被解除锁定、停止等。您需要手动调用setCategory:AVAudioSessionCategoryPlayback。