bxsliderで複数のvimeoスライドを自動再生させようとしています。
最初のスライドの動画が終わったら次の動画を自動再生させたいのですが、
現在
1周目:動画1:数秒再生(最後まで再生せず)
動画2:数秒再生
2周目:動画1:最後まで再生し、動画1のみループ再生
となります。これをまず
1周目:動画1:最後まで再生
動画2:最後まで再生
2周目:動画1:最後まで再生
動画2:最後まで再生
としたいです。ご教授お願い致します。
※この問題が解消したら次は再生途中で次の動画をクリックしたら次の動画を再生させるようにしようとしています。(現在、二つが再生されるようになるのか二つの”ドット”が黒く再生状態になってしまいます)
<!DOCTYPE html>
<html>
<head>
<link href="css/jquery.bxslider.css" rel="stylesheet">
</head>
<body>
<div class="bxslider">
<div><img src="images/s1.jpg" alt=""></div>
<div class="video">
<iframe src="https://player.vimeo.com/video/XXXXXXXXX?autopla … width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</div>
<div class="video">
<iframe src="https://player.vimeo.com/video/XXXXXXXXX?autopla … width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1 …
<script src="js/jquery.bxslider.js"></script>
<script src="js/jquery.fitvids.js"></script>
<script>
$(function() {
var video = $('.bxslider video');
var slider = $('.bxslider').bxSlider({
mode: 'fade',
auto:'true',
infiniteLoop: 'true',
adaptiveHeight: 'true',
video: 'true',
controls: 'false',
pager: 'false',
onSlideAfter: function(elm, oIndex, nIndex){
video.get(nIndex).play();
}
});
video.on("ended", function(){
var v = video.get(slider.getCurrentSlide());
v.currentTime = 0;
v.pause();
slider.goToNextSlide();
}).get(0).play();
});
</script>
</body>
</html>
No.1
- 回答日時:
こんにちは
なんだかどこかで見たような・・・
と思ったら、もしかしてこれ?(お名前も違うようですけれど…)
https://oshiete.goo.ne.jp/qa/9677172.html
ご提示のHTMLだと、$('.bxslider video')はDIV要素になっているので、その後のcurrentTimeやpause()、play()などの操作ができるはずもないですし、そもそもendedイベントをdivで取得できるのかもはなはだ疑問です。
仮に、制御をするにしてもaudio要素が対象でないと意味がありませんが、iframeを使用しているようなので、クロスドメイン制限にひっかかって、audio要素にアクセスはできないのではないでしょうか?
(同一ドメインなら可能かも知れませんが、iframe内のドキュメントの構成も不明なので…)
とりあえず、他に方法がないかを考えてみるなら・・・
もしも、iframeが読み込んだら自動再生するようになっているのであれば、再生したい時にreloadさせるとか。(試していないので、ちゃんと再生されるのか不明です)
(キャッシュが効くのかもわからないので、reloadに時間がかかるかも知れません。キャッシュが効くのなら比較的速いはずと想像できます)
iframeのonloadはイベントとして取得できると思いますので、load中に見せたくない形で表示されてしまうようならば、iframeの上にマスクをかけておいて、onloadで外すとか・・・かなぁ?
再生の終了をどうやって取得するのかは・・・・残念ながら思いつけませんでした。
早速ありがとうございます。
bxslider 、動画、自動再生などで検索していてご指摘の板も参考に致しました。videoとvimeoで混同して作業をしていました。ありがとうございます。ご指摘内容を参考に、vimeo APIを見ながら作ってみました。
まだbxsliderを入れると動作しないので、ひとまず動画二つ並べてできるところまで、一つ目の動画が終わったら次を再生、を交互にできるようにしました。途中経過ですが、こちらに書き込みします。何かアドバイス等ありましたらお願いします。
<div class="bxslider">
<div id="player_1"></div>
<div id="player_2"></div>
</div>
~省略~
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
$(function() {
var options = {
id: XXXXXXXX, // Vimeo ID
autopause: true,
autoplay: true
};
var options2 = {
id: XXXXXXXXX, // Vimeo ID
autopause: true,
autoplay: false
};
var player1 = new Vimeo.Player('player_1', options);
var player2 = new Vimeo.Player('player_2', options2);
player1.setVolume(0);
player1.play();
player1.on('ended', function(data) {
player2.setVolume(0);
player2.play();
});
player2.on('ended', function(data) {
player1.setVolume(0);
player1.play();
});
});
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript 画像の表示位置 3 2022/12/23 08:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サポートされたファイル形式お...
-
VIDEOタグでPC上のローカルファ...
-
動画編集ソフト自作について。
-
Mac FLVのクイックルックがで...
-
プロ野球の結果を教えてください
-
Googleマップに保存した地点が...
-
ガラケーからPCへの写真の取り込み
-
PDFファイルの倍率を変えて保存...
-
GIMP separate+プラグイン クラ...
-
【VBA】マクロの入ったファイル...
-
photoshopで上書き保存して閉じ...
-
スマホでtxtファイルを編集する...
-
A4の紙に印刷されている文字を...
-
録画専用機に Mini ITX GA-C1007U
-
Fortniteのクラッシュについて
-
WebBrowserにHTMLテキストを読...
-
アニメーションGIFファイルを読...
-
PC内で速度を遅くした音源をCD...
-
情けない話ですが成田エクスプ...
-
このページではAC_RunActiveCon...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サポートされたファイル形式お...
-
Visual Basic.NETの、Form 間で...
-
連続的に画像を受け取り、画像...
-
VIDEOタグでPC上のローカルファ...
-
VBSで動画ファイルの時間を読み...
-
動画編集ソフト自作について。
-
mp4動画をDVDプレーヤーで再生...
-
楽天RMS PC用販売説明文に動画...
-
ダウンロードしたファイルの容...
-
WIN32APIで動画を読み...
-
DirectShowでの動画の保存
-
●HTMLに動画を埋め込むが再生さ...
-
Visual C++のWindowsMediaPlaye...
-
VB2010で全画面で動画をランダ...
-
Mac FLVのクイックルックがで...
-
javaを使ってMP4を再生させるには
-
HTMLに動画を埋め込んで再生し...
-
クイックタイムプレイヤーのム...
-
bxsliderで複数のvimeoスライド...
-
ライブストリーミング動画の再...
おすすめ情報
先ほどのお礼の自己レスです。
for文の条件を「options[i]」から「i < 2」へ変更したら最初のスライド動画のみ空白でその後は交互にスライド動画再生されるようになりました。
あとはloadedイベントの仕方が誤りなのかもしれません。何かアドバイスなどございましたらよろしくお願い致します。
※先ほど記載致しましたbxsliderのオプションは効いているようで、vimeoプレイヤーのwidthがレスポンシブになっていないようです。こちらも確認中です。
-------
~前省略~
for(var i=0; i < 2 ; i++) {
players[i] = new Vimeo.Player(elms[i], options[i]);
省略
});
}
players[0].loadVideo();
players[0].play();
vimeoのレスポンシブの件ですが、オプションに「responsive:true」を入れたら解消致しました。
既に試していましたが、色々いじっていたので効いていなかったようです。
改めてコード整理しながら記載しましたら対応しました。お騒がせ致しました。。。
別件で作業していて気が付いたのですが、
最初の音声のみ再生されている最中にブラウザのウィンドウサイズを変えると動画が表示されました。Firefox,Chromeで見てみましたがどちらもサイズを変えると(小から大、大から小のどちらも)、すぐに動画が表示されました。何故、、、引き続き格闘します。。。
度々すみません。
firefoxでインスペクタの部分をみたさいの追記です。
//<div id="player_1" data-vimeo-initialized="true"></div>を見つけました。
data-vimeo-initializedが追加されていて、その下の階層を見るとiframeタグがいました。念のため。