我的应用使用MPMoviePlayerController播放播客。在ios4中,我能够通过以下代码绕过停止播放播客的锁屏:
OSStatus audioInitStat = AudioSessionInitialize (NULL,NULL,NULL,NULL);
if (audioInitStat != kAudioSessionNoError) {
printf("AudioSession Failed to Initialize\n");
}
else {
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
audioInitStat = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
}
以前它可能运气不好,但事实是现在随着ios5的推出,电影播放器在没有ios4的情况下停止屏幕锁定。有谁知道如何允许电影播放器在屏幕锁定期间播放。我不想用:
[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];
因为这会杀死电池(即我想让屏幕变暗)。任何想法都将非常感激。如果我不能使用电影播放器,你知道我是否可以使用ios的任何其他音频功能来播放播客?
答案 0 :(得分:1)
在iOS 5.x中,您需要在info.plist文件中设置两个键。
首先使用Key“UIApplicationExitsOnSuspend”向文件添加一行,使值为布尔值并将其设置为“NO”
接下来添加一行,其中包含名为“UIBackgroundModes”的键 这将是一个数组,您希望第一个项目的值为“audio”
您可能还想将音频会话设置为AVAudioSessionCategoryPlayback以获得良好的衡量标准:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
这适用于使用MPMoviePlayerController播放的音频文件,但不适用于视频。
答案 1 :(得分:0)
经过多次挖掘,我找到了部分解决方案:
转到您的应用的info.plist。
添加“必需的背景模式”键并将值设置为“App播放音频” 添加“应用程序在后台运行”键并将值设置为“是”
我不知道这是哪里记录的,但它确实有效。
这只是部分解决方案。有了这个,音频可以在后台播放,但你不能按主页按钮来访问其他应用程序。当您按下主页按钮时,应用程序将终止。