MPMoviePlayerController 中没有扩展的 HTTP 流

Posted

技术标签:

【中文标题】MPMoviePlayerController 中没有扩展的 HTTP 流【英文标题】:HTTP stream without extension in MPMoviePlayerController 【发布时间】:2010-04-18 19:35:13 【问题描述】:

我目前让 VLC 流式传输 WMV 文件,同时它将文件实时转换为带有 MP3 音频的 H264。这意味着您将获得一个只有 IP 和端口 (http://127.0.0.1:1234/) 的 URL。当我尝试让 MPMoviePlayerController 流式传输此内容时,它说它无法打开该扩展程序...

我该怎么办?我听说你必须创建一个 M3U8 文件,但我不知道该怎么做。

有没有解决这个问题的方法,或者有没有 MPMoviePlayerController 的替代品?

提前致谢

【问题讨论】:

【参考方案1】:

我刚刚尝试过,它对我有用...我不知道它是否正是您正在寻找的......

在装有 VLC 的计算机上,我运行了 [1]:

/Applications/VLC.app/Contents/MacOS/VLC --intf=rc SOME_VIDEO \\
'--sout=#transcodefps=25,vcodec=h264,venc=x264aud,profile=baseline,level=30,\\
keyint=30,bframes=0,ref=1,nocabac,acodec=mp3,ab=56,audio-sync,deinterlace:\\
standardmux=ts,access=http,dst=192.168.80.26:8080/test.mp4'

现在,如果您这样做,您应该能够直接与任何媒体播放器(如 VLC 本身)连接,但是正如您已经说过的那样,它不适用于 MPMoviePlayerController .. 所以我做了什么...我创建了 m3u8 文件,如这和我命名为“test.m3u8”

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, 
http://192.168.80.26:8080/test.mp4

这个文件只是指向流,然后我把它放在一个网络服务器中,比如 apache... 它起作用了..我能够使用 MPMoviePlayerController 观看流... 现在我只需要弄清楚如何离开那里,因为我刚刚学习如何使用 MPMoviePlayerController 而我不知道如何设置“完成”按钮:-)

btw...在源代码中...我分配给 MPMoviePlayerController 的字符串是这样的: NSString *path = @"http://192.168.80.26/~user/test.m3u8";

我不知道这是否最有效或正确的做法..但至少它有效;)

嘿嘿

【讨论】:

以上是关于MPMoviePlayerController 中没有扩展的 HTTP 流的主要内容,如果未能解决你的问题,请参考以下文章

在 UICollectionViewCell 中滚动时 MPMoviePlayerController 变为空白

MPMoviePlayerController 起始图像

MPMoviePlayerController 隐藏 AirPlay 按钮

使用 URL 在 MPMoviePlayerController 中播放视频 - iOS

MPMoviePlayerController 仅显示白色背景

是否可以将 MPMoviePlayerController 静音?