希望这个问题不会被投票 - 我在文档中没有看到任何内容。
我想在应用程序位于后台时播放ipod库中的音乐。
我正在使用默认机制创建音乐播放器。
-(void)viewWillAppear:(BOOL)animated
{
MPMusicPlayerController *myPlayer =
[MPMusicPlayerController applicationMusicPlayer];
// assign a playback queue containing all media items on the device
[myPlayer setQueueWithQuery: [MPMediaQuery songsQuery]];
// start playing from the beginning of the queue
[myPlayer play];
}
只要应用程序进入后台,音乐就会停止播放。我希望它继续玩。
我不想使用iPodMusicPlayer 选项
我该怎么做?
答案 0 :(得分:1)
您应该在项目设置中设置背景音频模式(项目设置>功能>背景模式>音频和AirPlay),如下面的屏幕截图所示:
此外,您应该在appDelegate中设置音频会话类别(在didFinishLaunching方法中)。示例如下所示:
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
答案 1 :(得分:0)
我有同样的问题。我在plist中加入旗帜后搜索了一下。它不起作用,因为:
applicationMusicPlayer
不支持背景音乐。使用MPMusicPlayerController's
systemMusicPlayer 代替。它分享了 具有内置系统播放器的状态和音乐将继续播放 当您的应用进入后台时。
其他解决方案是:
您可以使用AVAudioPlayer
播放流媒体或本地(捆绑)音频。它甚至允许您同时播放多个音频文件,每个文件都有AVAudioPlayer
个实例。
注意: iPodMusicPlayer
已弃用。所以不要使用systemMusicPlayer
。