2016-03-18 9 views
0

URLを取得するためにサーバーにコールバックを行った後にビデオを読み込む必要があるWebページがあります。テストのために、私はページにビデオをロードしていますが、それが動作するときにコンテナを選択的に表示/非表示にします。VideoJSを使用しているときにビデオURLを動的に読み込むにはどうすればよいですか?

URLをsrcタグに直接埋め込み、data-setup = "{}"にすると正常に動作します。

しかし、動的に読み込もうとすると、ビデオを読み込むことができません(エラーはありません)。ここで

はHTMLです:

<div id="video-container"> 
<video id="videoplayer" class="video-js vjs-default-skin" controls preload="auto"> 
    <source id="videosource" type='video/mp4'> 
    <p class="vjs-no-js"> 
     To view this video please enable JavaScript, and consider upgrading to a web browser that 
     <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a> 
    </p> 
</video> 

そして、ここで私が実行しているコードです:

$.get(url, 
     function (data) { 
      videojs("videosource", {}, function() { 
       this.reset(); 
       this.src(data); 
       this.load(); 
       this.play(); 
      }); 
     }); 

私は.RESET()の呼び出しが含まれていない場合は、エラー"with this.el_.loadは関数ではありません。私が.reset()を呼び出すとエラーは発生しませんが、何もロードされません。私はChromeを実行していますが、Firefoxでも読み込めません。

同じ結果(エラーがないが、いずれかのビデオなし)にSRCを設定するとき、私はまた、代替パラメータを試してみました:

this.src({ type: "video/mp4", src: data }); 

私はCDN経由でバージョン5.8を使用しています。

どこが間違っているのでしょうか?

+1

これを 'videojs(" videoplayer "、' ...、 'source'要素を完全に削除してみてください) – BeardFist

+0

優秀 - 完全に機能しました。ありがとうございました –

答えて

2

私がvideojsを使用したときに私のコメントを移動すると、私はvideo要素のみを使用し、そのうちのidを使用しました。したがって、不要なsource要素を削除し、それをvideojs("videoplayer",に変更して正しい要素を対象とします。

+0

あなたを助けてくれますか? - https://stackoverflow.com/questions/44840150/loading-video-js-dynamically-from-url – Hitesh

関連する問題