[解決済み】「次へ」ボタンが押されると、html5ビデオを自動的に一時停止する(javascript/jquery)。
質問
現在作成中のアプリケーションをテストするために、Webブラウザ上でi-phoneのような画面をデザインしています。ユーザーはビデオエリアをクリックすることでビデオを再生し、右上のボタンをクリックすることで次のビデオにナビゲートすることができます。
THE PROBLEM(ザ・プロブレム)。 問題は、ビデオを押して再生しているときに、「次へ」ボタンを押すと、クリックバックしていない場合は、新しいビデオが進み、バックグラウンドでそのビデオの再生音が聞こえることです。
ビデオをミュートしようとしたが、うまくいかなかった。 ユーザーが「次へ」ボタンをクリックした場合にビデオをミュートすることを試したところ、ミュートには成功しました。しかし、問題は、戻るボタンを押すとビデオが完全にミュートされ、ページを更新しない限り、音がまったく再生のされないことです*。
これは、「次へ」ボタンが押された場合にビデオをミュートしようとするために使用した jquery コードです。
$("#nextButtonTop, #prevButtonTop ").click( function (){
if( $("#topVid video:visible").prop('muted') ) {
$("#topVid video:visible").prop('muted', true);
} else {
$("#topVid video:visible").prop('muted', true);
}
});
このセクションの基本的なhtmlコードです。 このセクションの基本的なHTMLコード:
<div class="topVid channel1960s">
<div class="testMarqueeLeft"><div>CHANNEL 1960s: Jackie Kennedy at JFK's service</div></div>
<video loop onclick="this.paused? this.play() : this.pause()" >
<source src="videos/1960s_Jackie_mourning_VERT.mp4" type="video/mp4">
Your browser does not support the video tag.
</video> </div>
理想的な解決策:「次へ」ボタンが押されると同時に一時停止する。 最終的に、ミュートはパフォーマンスの問題から理想的な解決策ではないことに気づきました(音がなくても隠し映像が再生され続けることになります)。 この「次へ」ボタンが押されると同時にビデオを一時停止する(ミュートするのではない)最良の方法は何でしょうか? html上にインラインのjavascriptコードがすでにあり、ユーザーがそれをクリックすると再生と一時停止を行うようになっていますが 次のボタンが押されたら一時停止して、表示されたら再生できるようにする、この他の部分の追加方法がよくわかりません。
動画を一時停止させるためにこれを試したが、うまくいかなかった。
$("#nextButtonTop, #prevButtonTop ").click( function (){
if ($('.topVid.video').is(":hidden")) {
$('.topVid.video').pause();
}
});
これも試してみましたが、何も
$('video').each(function(){
if ($(this).is(":in-viewport")) {
$(this)[0].play();
} else {
$(this)[0].pause();
}
})
を使用する。
"this.paused ? this.play() : this.pause();"
他の回答で提案されましたが、一時停止が他の要素(ビデオ自体ではなく、「次へ」ボタン)をクリックすることによって引き起こされることを考えると、これがどのように機能するのかよくわかりません。
どのように解決するのですか?
jQueryがドキュメントの最後にある場合を除き、jQueryは必ず
jQuery(function($) {...})
.
すべてのイベントハンドラをHTMLではなくjavaScriptで添付する。これは必須ではありませんが、すべてのインタラクティブなコードを一目で確認できるようにします。
以下のことに注意してください。 {コード と {コード {コード は {{コード {コード 要素のメソッドであり、jQueryのメソッドではありません。
これを試してみてください。
HTML
.play()
JavaScript
.pause()
関連
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み】react router v^4.0.0 Uncaught TypeError: 未定義のプロパティ'location'を読み取れない
-
[解決済み] jQueryでJavaScriptオブジェクトから選択する際に、オプションを追加する最も良い方法は何ですか?
-
[解決済み] テキストボックスのEnterキーで、JavaScriptでボタンクリックをトリガーする
-
[解決済み] JavaScriptコンソールにjQueryを含める
-
[解決済み] jQuery UIダイアログのクローズボタンを削除するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Heroku:ノードアプリで「このアプリにはデフォルトの言語が検出されませんでした」エラーがスローされる
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。