首页 文章

在iOS上的Azure媒体服务中托管的流媒体视频(Xamarin)

提问于
浏览
0

我在Azure Media Services中托管了一个视频 . 我使用H264多比特率1080p编码预设编码了视频(我也尝试过其他人) . 发布流式传输后,我得到以下 endpoints . (我用下面的mysite替换了我的实际网站名称)

Smooth Streaming
http://mysite.streaming.mediaservices.windows.net/eaaa9f34-e39a-4393-a93b-14a7609ebd27/sampleVid.ism/manifest

MPEG-DASH
http://mysite.streaming.mediaservices.windows.net/eaaa9f34-e39a-4393-a93b-14a7609ebd27/sampleVid.ism/manifest(format=mpd-time-csf)

HLS(v3)
http://mysite.streaming.mediaservices.windows.net/eaaa9f34-e39a-4393-a93b-14a7609ebd27/sampleVid.ism/manifest(format=m3u8-aapl-v3)

HLS(v4)
http://mysite.streaming.mediaservices.windows.net/eaaa9f34-e39a-4393-a93b-14a7609ebd27/sampleVid.ism/manifest(format=m3u8-aapl)

我已成功使用HLS(v4)网址为Android播放视频,因此我知道该视频有效 .

对于ios,我遵循了本教程 . https://developer.xamarin.com/recipes/ios/media/video_and_photos/play_a_video_using_avplayer/

我可以成功播放本地视频 . 我也可以按照这个苹果教程播放远程视频 . https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html

我正在使用的URL一定有问题,但我无法弄清楚它是什么 . 这是我的ViewDidLoad方法中的代码 .

var myUrl = NSUrl.FromString("http://myurl.streaming.mediaservices.windows.net/eaaa9f34-e39a-4393-a93b-14a7609ebd27/sampleVid.ism/manifest(format=m3u8-aapl)");         
        var appleUrl = NSUrl.FromString("http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8");

        _playerItem = new AVPlayerItem(myUrl);

        _player = new AVPlayer(_playerItem);

        _playerLayer = AVPlayerLayer.FromPlayer(_player);
        _playerLayer.Frame = ProfileVideoContainerView.Frame;
        ProfileVideoContainerView.Layer.AddSublayer(_playerLayer);
        _player.Play();

myUrl不起作用,但appleUrl可以 .

2 回答

  • 1

    事实证明我只需要使用https而不是http . 我以为我试过这个,但显然不是 . 另外,我不确定为什么appleUrl可以使用http .

  • 1

    有一个iOS“功能”不允许连接到http endpoints ,除非 endpoints 在info.plist中列为允许的不安全连接 . 我已经忘记了这一点,并在几天/几周前被它 grab 了 . 我认为这个功能是用iOS9实现的,但我对此并不是100%肯定 . 它可能在此之前实施 .

相关问题