MPMoviePlayerController音频显示“完成”按钮

4

我使用MPMoviePlayerController来播放音频流。我的代码遵循以下示例:

http://iosdevelopertips.com/video/getting-mpmovieplayercontroller-to-cooperate-with-ios4-3-2-ipad-and-earlier-versions-of-iphone-sdk.html

一切都运行良好,但在播放流时没有“完成”按钮来关闭播放器。

我首先尝试用普通的.mp3文件进行测试。对于该文件,我找到的唯一可能性是跳到结尾,以便播放器接收到MPMoviePlayerPlaybackDidFinishNotification通知(但这不适用于无限时间的流,因为没有时间线可以跳到结尾)。

我尝试过各种样式,例如[mp setControlStyle:MPMovieControlStyleFullscreen];,但均未成功。

MPMoviePlayerController Class文档中,有如下说明:

此类可播放iOS支持的任何电影或音频文件。这包括流内容和固定长度文件。

是否有可能在播放某些音频内容时显示该按钮,或者有其他解决方法吗?

我试图向您展示一个截图,但“新用户只能发布最多两个超链接”。

2个回答

13

我自己找到了解决方案。

使用MPMoviePlayerViewController类,而不是MPMoviePlayerController,解决了这个问题:

NSString *path = @"http://yourstreamingurl.com/stream.m3u";

MPMoviePlayerViewController* mpviewController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:path]];

mpviewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;  
[self presentModalViewController:mpviewController animated:YES];
[[mpviewController moviePlayer] play];

1
它运行得很完美,此外,当用户按下“完成”时,MPViewController会自动关闭。 - pronebird

2

如果要在本地播放文件,请删除

mpviewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;  

否则它将返回
Terminating app due to uncaught exception NSInvalidArgumentException reason An AVPlayerItem cannot be associated with more than one instance of AVPlayer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接