2017-04-04 26 views
0

モバイルデバイスでのみ使用する必要のあるWebアプリケーションで、Azure Media Playerを使用してO365ビデオをストリーミングしています。それはWPとAndroidで動作しますが、プレイヤーはiOSで立ち往生します。iOSデバイスのAzure Media Player

これは、私は問題はビデオのエンコードに関連していると思います

client.DefaultRequestHeaders.Add("Authorization", "Bearer " + bearer); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

      var response = await client.GetAsync($"{url}/GetPlaybackUrl('1')"); 
      var content = await response.Content.ReadAsStringAsync(); 
      var firstVal = JsonConvert.DeserializeObject<VideoToken>(content); 

      response = await client.GetAsync($"{url}/GetStreamingKeyAccessToken"); 
      content = await response.Content.ReadAsStringAsync(); 
      var secondVal = JsonConvert.DeserializeObject<VideoToken>(content); 

クライアント側

<video id="newsVideoAMP" class="azuremediaplayer amp-default-skin amp-big-play-centered" tabindex="0"></video> 

var initVideoPlayer = function (playbackUrl, streamingKeyAccessToken) { 
    try { 
     var myOptions = { 
      "nativeControlsForTouch": false, 
      controls: true, 
      autoplay: false, 
      techOrder: ["azureHtml5JS", "flashSS", "html5FairPlayHLS", "silverlightSS", "html5"], 
      logo: { enabled: false } 
     } 
     newsVideoPlayer = amp("newsVideoAMP", myOptions, 
      function() { 
       this.addEventListener(amp.eventName.error, function() { 
        window.alert('error'); 
        console.log('Error: amp init'); 
        var errorDetails = newsVideoPlayer.error(); 
        window.alert(errorDetails); 
        var code = errorDetails.code; 
        var message = errorDetails.message; 
        $("#log").append("<li><span>code: " + code + " - detail: " + message + "</span></li>')"); 
       }); 
      }); 
     newsVideoPlayer.src([ 
      { 
       "src": playbackUrl, 
       "type": "application/vnd.ms-sstr+xml", 
       "protectionInfo": [ 
        { 
         "type": "AES", 
         "authenticationToken": streamingKeyAccessToken 
        } 
       ] 
      }]); 
    } 
    catch (err) { 
     console.log(err); 
    } 
} 

私のコードです。だから私はGetPlaybackUrl('0')を使用しようとしました(そして次のトークン要求を避ける)が、WPとAndroidで作業するのをやめ、まだiOSでは動作しません。

コールバック関数のロガーは私にいくつかの有用なことを教えてくれず、テクニカルオーダーを変更しようとしました。

AESアルゴリズムと復号化トークンを避けるためにビデオエンコードを管理するコンソールはありますか? this docは、iOSがHTML5技術で動作するため、トークンを要求しないと説明しています。どうすれば解決できますか?ありがとう

答えて

0

iOSデバイスで動画を再生するための回避策が見つかりました。 REST APIを使用する代わりに、埋め込まれたビデオとともにページにiframe要素を配置しました。このよう (MVCレイザー使用):

var url = "{YourWebsiteUrl}/portals/hub/_layouts/15/VideoEmbedHost.aspx?chId={YourChannelId}&vId={YourVideoId}&width=853&height=480&autoPlay=false&showInfo=false"; 

<iframe width=853 height=480 id="videoframe" src="@url" allowfullscreen data-spresponsive style='position: absolute; top: 0; left: 0; right: 0; bottom: 0; height: 100%; max-width: 100%;'></iframe> 

私はOffice365ビデオのビデオページの「埋め込み」メニューのポップアップから、このコードを取得します。

他の人が他の(もっと良い)方法を知っている場合は、教えてください。ありがとうございました

関連する問題