我想在手机锁定时使用AVSpeechSynthesizer
,但是当我锁定屏幕时音频会停止。我使用的是模拟器,而不是实际的设备。我在这个网站上看到了其他几个与此相似的问题,我按照他们的建议,但它仍然无效。
在app delegate中,我将音频会话类别设置为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);
}
}
我检查了项目设置 - >功能 - >背景模式下的'音频和播放'模式。
谁能告诉我如何让它发挥作用?
答案 0 :(得分:2)
这里是我如何让AVSpeechSynthesizer在手机闲置,电话被锁定或应用程序转到后台时继续说话。功能(iOS8)
步骤1)打开info.plist并添加密钥"所需的背景模式"。在此数组中,添加名为&#34的字符串;应用播放音频或使用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)在您的设备上运行并测试它!
答案 1 :(得分:0)
我能够按照这篇文章让它在一个月前上班:
基本上,您需要在应用的.plist文件中输入内容。我不确定这会在模拟器上运行,因此您可能希望在实际设备上进行测试。