1

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

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

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

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

有这方面的线索吗?似乎我必须再次将这些设置更改为其原始设置。

4

1 回答 1

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];

一切开始正常。

于 2013-02-19T23:56:23.920 回答