在静音模式下录制和播放音频只需执行一次

时间:2013-02-19 18:42:52

标签: ios objective-c avaudioplayer

我正在视频控制器中录制音频并显示一个按钮供用户在第二个视图控制器上播放。

问题是我在第二个视图上使用此代码,因此即使在静音模式下也可以播放音频:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
                         sizeof(sessionCategory), &sessionCategory);

但是当我回去录制第二个音频时,它不能在第二个屏幕上播放。

这有什么线索?好像我必须再次将这些设置更改为原始设置。

1 个答案:

答案 0 :(得分:2)

试试这个:

UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
    AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
                             sizeof(sessionCategory), &sessionCategory);

前段时间我有类似的问题,但我正在使用AVAudioSession。问题是一样的,然后我发现了一件事,它可能对你有用:

记录工作正常,然后在我播放一些东西之后就停止工作了。问题是我通过调用

将AVAudioSession重新设置为播放类别
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
录音停止工作后

。有两种方法可以修复它,将音频会话设置为AVAudioSessionCategoryRecord,然后播放到AVAudioSessionCategoryPlayback或设置为AVAudioSessionCategoryPlayAndRecord

之后

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
一切都开始好起来了。