0

我试图AVSpeechSynthesizer在手机锁定时使用,但当我锁定屏幕时音频停止。我正在使用模拟器,而不是实际设备。我在这个网站上看到了其他几个与此类似的问题,我遵循了他们的建议,但它仍然不起作用。

在应用程序委托中,我将音频会话类别设置为AVAudioSessionCategoryPlayback.

- (void)configureAudioSession{
    NSError *error = NULL;
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error];
    if(error) {
        NSLog(@"Error setting category of audio session: %@",error.description);
    }
    error = NULL;
    [[AVAudioSession sharedInstance] setActive:YES error: &error];
    if (error) {
        NSLog(@"Error activating audio session: %@",error.description);
    }
}

我检查了项目设置->功能->背景模式下的“音频和播放”模式。

谁能告诉我如何让它工作?

4

2 回答 2

2

以下是我如何让 AVSpeechSynthesizer 在手机空闲、手机被锁定或应用程序进入后台时继续说话。(iOS8)

步骤 1) 打开 info.plist 并添加键“必需的背景模式”。在此数组中,添加一个名为“App 使用 AirPlay 播放音频或流式传输音频/视频”的字符串。

步骤 2) 将以下内容添加到您的应用委托 didFinishLaunchingWithOptions:

NSError *error = NULL;
    AVAudioSession *session = [AVAudioSession sharedInstance];
    [session setCategory:AVAudioSessionCategoryPlayback error:&error];
    if(error) {
        // Do some error handling
    }
    [session setActive:YES error:&error];
    if (error) {
        // Do some error handling
    }

第 3 步)在您的设备上运行并进行测试!

于 2015-07-12T14:40:42.490 回答
0

大约一个月前,我能够关注这篇文章以使其工作:

即使类别是 AVAudioSessionCategoryPlayback,AVAudioPlayer 也会在屏幕锁定时停止播放

基本上,您需要在应用程序的 .plist 文件中进行输入。我不确定这是否适用于模拟器,因此您可能希望在实际设备上对其进行测试。

于 2013-11-01T14:59:44.617 回答