我在表格视图中显示媒体层次结构。当我点击表格视图中的一首歌曲时,它会使用MPMoviePlayerViewController播放歌曲。但是当我点击完成按钮时,声音停止播放。我创建了以下代码:
NSURL *songUrl=[operationControl getSong:stringId];
mediaPlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:songUrl];
[self presentModalViewController:mediaPlayerController animated:YES];
[[mediaPlayerController moviePlayer] play];
我想要浏览媒体层次结构以及在后台播放歌曲。我怎样才能做到这一点?
答案 0 :(得分:4)
您应该启动AVAudioSession并在主plist中声明您的应用程序在后台播放音乐。
// Setup audio session
AVAudioSession *sharedSession = [AVAudioSession sharedInstance];
[sharedSession setCategory:AVAudioSessionCategoryPlayback error:nil];
在applicationDidBecomeActive中:
[sharedSession setActive:YES error:nil]; // FIXME: Error handling
在主plist中添加:所需的背景模式 - 应用播放音频
答案 1 :(得分:2)
听起来你没有正确设置音频会话。从
例如,使用默认音频会话时,当自动锁定时间超时且屏幕锁定时,应用程序中的音频将停止。如果要确保在屏幕锁定的情况下继续播放,请在应用程序的初始化代码中包含以下行:
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
AVAudioSessionCategoryPlayback类别可确保在屏幕锁定时继续播放。激活音频会话会使指定的类别生效。