ビデオ フレームの下のリンクがクリックされたときにソースを動的に変更する埋め込みビデオを含むページを作成しようとしています。ソース ビデオはホスト サーバーにあります。つまり、この写真はそれを示しています:
答えがあるように見えるこのページに出くわしましたが、試してみましたがうまくいきませんでした。例に従って、css と javascript を本文に貼り付け、必要な html を本文に貼り付けました。URL へのすべての参照を更新し、ファイル名をテスト用の例と同じに保とうとしました。以下は私が試したことです。
誰かが私のエラーを指摘したり、これを行うためのよりエレガントな方法を提供できますか? 基本的に、リンクがクリックされたときに埋め込まれたビデオを動的に変更し、ビデオはすべての一般的なブラウザとほとんどのデバイスで動作します。これは wordpress サイト用で、JW Player for wordpress を使用しています (私のエラー) 代わりに、このスクリプト/コードは実際にはVideo.js用であることがわかりました
プレイメージをロードしますが、再生しません。
テストとしてこれを試してみたところ、単一のビデオが適切に再生されます。
<video id="testvideo" class="video-js vjs-default-skin" width="440" height="300" controls="controls">
<source src="http://www.mywebsite.net/videos/testvid_01.mp4" type="video/mp4"/>
<source src="http://www.mywebsite.net/videos/testvid_01.webm" type="video/webm"/>
<source src="http://www.mywebsite.net/videos/testvid_01.ogv" type="video/ogg"/>
</video>
複数のソース リンクの JavaScript バージョン
<html>
<head>
<title></title>
<style media="screen" type="text/css">
.wrap { margin:30px auto 10px; text-align:center }
.container { width:440px; height:300px; border:5px solid #ccc }
p { font: 10px/1.0em 'Helvetica',sans-serif; margin:20px }
</style>
<script>
$("input[type=button]").click(function() {
var $target = "testvid_"+$(this).attr("rel");
var $content_path = "http://www.mywebsite.net/videos/";
var $vid_obj = _V_("div_video");
// hide the current loaded poster
$("img.vjs-poster").hide();
$vid_obj.ready(function() {
// hide the video UI
$("#div_video_html5_api").hide();
// and stop it from playing
$vid_obj.pause();
// assign the targeted videos to the source nodes
$("video:nth-child(1)").attr("src",$content_path+$target+".mp4");
$("video:nth-child(1)").attr("src",$content_path+$target+".ogv");
$("video:nth-child(1)").attr("src",$content_path+$target+".webm");
// replace the poster source
$("img.vjs-poster").attr("src",$content_path+$target+".png").show();
// reset the UI states
$(".vjs-big-play-button").show();
$("#div_video").removeClass("vjs-playing").addClass("vjs-paused");
// load the new sources
$vid_obj.load();
$("#div_video_html5_api").show();
});
});
$("input[rel='01']").click();
</script> </head>
<body>
<section class="container wrap">
<video id="div_video" class="video-js vjs-default-skin" controls preload="auto" width="440" height="300" poster="http://www.mywebsite.net/videos/testvid_01.png" data-
setup="{}">
<source src="" type="video/mp4">
<source src="" type="video/ogg">
<source src="" type="video/webm">
</video>
</section>
<div class="wrap">
<input rel="01" type="button" value="load video 1">
<input rel="02" type="button" value="load video 2">
<input rel="03" type="button" value="load video 3">
</div>
</body>
</html>
最初のビデオのプリロード イメージがロードされますが、ビデオは表示されません。エラーは「サポートされている形式と MIME タイプのビデオが見つかりません」です。
そこで、このセクションの最初のビデオのソースを追加しました
setup="{}">
<source src="http://www.mywebsite.net/videos/videos/testvid_01.mp4" type="video/mp4">
<source src="http://www.mywebsite.net/videos/videos/testvid_01.ogv" type="video/ogg">
<source src="http://www.mywebsite.net/videos/videos/testvid_01.webm type="video/webm">
</video>
最初の動画は読み込まれますが、他のリンクされた動画は読み込まれません。
ビデオ/png の名前: testvid_01.mp4、testvid_01.ogv、testvid_01.webm、testvid_01.png testvid_02.mp4、testvid_02.ogv、testvid_02.webm、testvid_02.png testvid_03.mp4、testvid_03.ogv、testvid_03.webm、testvid_03 .png
wordpressページとhtmlページの両方でこれを試しましたが、結果は同じです。
このスクリプトが私が望むことをするかどうかさえわかりませんか?