我有一个MPMoviePLayerController,http从一个解析成数组的xml播放列表中连续传输音频文件。
问题是当一首歌正在播放,手机被锁定时,它会继续播放歌曲,支持背景音频等等,直到歌曲结束...... 但是在打电话时:
- (void) moviePlayBackDidFinish:(NSNotification*)notification {...}
我调用该函数加载下一首曲目
- (void) LoadTrack:(int)indexToPlay {
//use the generic APIContentObject.
APIContentObject *currentTrack = [playlist objectAtIndex:indexToPlay];
NSLog(@"%@",[currentTrack SluggedURL]);
//get url
NSURL *url=[NSURL URLWithString:[currentTrack FileURL]];
//moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
if (!moviePlayer){
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
}else{
//moviePlayer = nil;
//moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
//moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
//[moviePlayer initWithContentURL:url];
[moviePlayer setContentURL:url];
moviePlayer.shouldAutoplay = YES;
[moviePlayer prepareToPlay];
[moviePlayer play];
}
...
它不加载曲目并在输出中给出以下内容:
[MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
正如您可以通过注释行看到的,我尝试了很多方法来解决这个问题。其中没有一个真正播放下一首歌。 是因为背景音频需要是一个恒定的流吗? 我不能这样做吗?
我们有一个CMS,用户可以更改其播放列表,因此在后台需要一个mp3-> -mp3桥接。
播放当前歌曲很好,但为什么不加载新歌?
或网络请求不被视为“背景音频”的一部分?
赞赏它。
答案 0 :(得分:0)
我终于意识到在后台我无法启动任何新的URL conns。 我需要切换到m3u风格的播放列表,并使用按需媒体服务器来完成我想要做的事情。
答案 1 :(得分:0)
确保将info.plist文件中的UIBackgroundModes键设置为“audio”。 这将允许您的应用在后台仍然执行代码。
以下是文档以防万一。 链接:Check this link and scroll to: "Declaring Your App’s Supported Background Tasks"
我对mpmovieplayercontroller有自己的问题,在搜索帮助时我发现了你的帖子。
我目前正在使用mpmovieplayercontroller播放音频,当歌曲结束时(moviePlayBackDidFinish),我向服务器询问下一首歌曲的网址。然后那首歌播放..冲洗并重复。屏幕锁定时工作正常(意味着当应用程序处于后台且屏幕被锁定时, 启动网址连接)。