我有一个应用程序执行非常标准的操作:当应用程序处于1)时播放音频(流式传输或文件系统)前景模式,2)屏幕锁定状态3)背景模式.这在iOS5之前的所有iOS中都运行良好.
我一直在使用MPMoviePlayerController(因为它可以播放流媒体和本地文件系统音频)我有以下设置:
我有Audiosession设置,如http://developer.apple.com/library/ios/#qa/qa1668/_index.html所示
NSError *activationError = nil;
AVAudioSession *mySession = [AVAudioSession sharedInstance];
[mySession setCategory: AVAudioSessionCategoryPlayback error: &activationError];
if (activationError) { /* handle the error condition */ }
[mySession setActive: YES error: &activationError];
if (activationError) { /* handle the error condition */ }
Run Code Online (Sandbox Code Playgroud)我启用了后台计时器,在音频播放结束时停止了UIBackgroundTaskIdentifier newId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
这样,音频开始播放,当应用程序进入后台状态或手机被锁定时,音频继续播放.但是,当我开始另一个音频文件后,我开始立即获得PlaybackDidFinishNotification,状态设置为播放结束(但文件从未播放过)
相同的代码以前台模式播放音频文件(当前音频文件结束后,下一个文件启动没有任何问题)
在iOS5中我有什么新东西可以让它工作吗?我通读了MPMoviePlayerController类引用,但我看不到iOS5的任何特定内容.
提前致谢.