2017-02-03 16 views
0

У меня есть видео, размещенное в Azure Media Services. Я закодировал видео, используя предустановленный кодировщик с кодировкой множественного битрейта H264 1080p (я тоже пробовал другие). После публикации для потоковой передачи я получаю следующие конечные точки. (Я заменил мое реальное имя сайта с MySite ниже)Потоковое видео, размещенное в Azure Media Services на iOS (Xamarin)

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) 

Я успешно потоковым видео для андроида, используя (v4) URL HLS, так что я знаю видео работы.

Для 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 делает.

ответ

1

Оказывается, мне просто нужно использовать https вместо http. Я думал, что попробовал это, но, видимо, нет. Кроме того, я не уверен, почему appleUrl работает с http.

1

Существует функция «iOS» iOS, которая запрещает подключение к конечной точке HTTP, если конечная точка не указана в info.plist как разрешенное незащищенное соединение. Я забыл об этом и поймал его несколько дней/недель назад. Я думаю, что эта функция была реализована с iOS9, но на 100% не уверен. Возможно, это было реализовано до этого.