【问题标题】:Monotouch video streaming with MPMoviePlayerController使用 MPMoviePlayerController 进行单点触控视频流
【发布时间】:2012-09-07 18:22:29
【问题描述】:

我正在创建一个将显示流媒体视频的 Monotouch iPhone 应用程序。我已经能够让 MPMoviePlayerController 使用本地文件 (NSUrl FromFile),但无法从媒体服务器获取视频流。

这是我用来播放视频的代码:

                string url = @"http://testhost.com/test.mp4";
                var nsurl = NSUrl.FromString(url);
                mp = new MPMoviePlayerController(nsurl);
                mp.SourceType = MPMovieSourceType.Streaming;

                //enable AirPlay
                //mp.AllowsAirPlay = true;

                //Add the MPMoviePlayerController View
                this.View.AddSubview(mp.View);

                //set the view to be full screen and show animated
                mp.SetFullscreen(true, true);

                //MPMoviePlayer must be set to PrepareToPlay before playback
                mp.PrepareToPlay();

                //Play Movie
                mp.Play();

在为视频流实现 MPMoviePlayerController 时,我还缺少什么别的东西吗?我还读到 iOS 的视频应该在媒体服务器上使用 Apple 的 HTTP Live Streaming 进行流式传输,这是一个要求吗?我以前从未在 iOS 设备上使用过视频流,所以我不确定我的代码或媒体服务器设置是否缺少某些东西或两者兼而有之。

【问题讨论】:

    标签: xamarin.ios video-streaming mpmovieplayercontroller


    【解决方案1】:

    我很确定您需要一个流服务器来使用来自 HTTP url 的视频文件。但是,应用程序(在 AppStore 上)这样做是一个 requirement

    发送大量音频或音频的重要 iPhone 和 iPad 应用程序 需要蜂窝网络上的视频数据才能使用 HTTP Live 流媒体。请参阅“应用程序要求”。

    好消息是您现有的代码不应该被更改来处理这个(它是服务器端,而不是客户端)。

    【讨论】:

    • 这将是更准确、更相关的部分:If your app delivers video over cellular networks, and the video exceeds either 10 minutes duration or 5 MB of data in a five minute period, you are required to use HTTP Live Streaming. (Progressive download may be used for smaller clips.)
    • 不,您不需要流媒体服务器即可通过 HTTP 播放视频。如果您不提供 M3U8,则会进行渐进式下载。
    • 使用 Apple 提供的示例媒体文件后,我能够确认代码确实有效。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多