19

オーバーレイにjQueryツールを使用しています。オーバーレイの中にはHTML5ビデオがあります。ただし、オーバーレイを閉じると、ビデオは再生され続けます。オーバーレイを閉じたときにビデオを停止させる方法はありますか?これが私が持っているコードです:

$("img[rel]").overlay({ onClose: function() { <stop the video somehow> }, mask: { color: '#000', opacity: 0.7 }});

使ってみました

$('video').pause();

しかし、これによりオーバーレイも一時停止しました。

4

9 に答える 9

27

ページ内のすべてのムービータグの再生を停止したい場合は、jQueryのこの小さなスニペットが役立ちます。

$("video").each(function () { this.pause() });
于 2012-06-22T10:10:45.787 に答える
13

さまざまなブラウザでビデオを開始する

Opera12の場合

window.navigator.getUserMedia(param, function(stream) {
                            video.src =window.URL.createObjectURL(stream);
                        }, videoError );

FirefoxNightly18.0の場合

window.navigator.mozGetUserMedia(param, function(stream) {
                            video.mozSrcObject = stream;
                        }, videoError );

Chrome22の場合

window.navigator.webkitGetUserMedia(param, function(stream) {
                            video.src =window.webkitURL.createObjectURL(stream);
                        },  videoError );

別のブラウザでビデオを停止する

Opera12の場合

video.pause();
video.src=null;

FirefoxNightly18.0の場合

video.pause();
video.mozSrcObject=null;

Chrome22の場合

video.pause();
video.src="";
于 2012-10-08T18:12:04.647 に答える
11

以下は私のために働きます:

$('video')[0].pause();
于 2011-06-30T23:20:09.137 に答える
9

問題は、選択したjqueryセレクターがセレクターで $("video")はないことにある可能性があります

右のセレクターは、ビデオタグのid要素を配置している可能性があります。つまり 、ビデオ要素が次のようになっているとします。

<video id="vid1" width="480" height="267" oster="example.jpg" durationHint="33"> 
    <source src="video1.ogv" /> 
    <source src="video2.ogv" /> 
</video> 

$("#vid1")次に、ハッシュマーク(#)、jqueryのIDセレクターを使用して選択できます。ビデオ要素が関数で公開されている場合は、HtmlVideoElement(HtmlMediaElement)にアクセスできます。この要素はビデオ要素を制御します。この場合pause()、ビデオ要素のメソッドを使用できます。

ここでVideoElementのリファレンスを確認してください。また、ここ
にフォールバックリファレンスがあることを確認してください。

于 2010-05-21T08:50:45.450 に答える
9

誰かがすでに答えを持っています。

$('video')は、ビデオアイテムの配列を返します。それは完全に有効なseletorです!

それで

$("video").each(function () { this.pause() });

動作します。

于 2013-09-26T11:27:42.243 に答える
3

JQM + PhoneGapアプリの場合、次のことがうまくいきました。

これを機能させるために私が行かなければならなかった最低限のことは次のとおりです。ユーザーが戻るボタンを押したときにajaxリクエストを生成しているときに、バッファリングが原因で実際​​にストールが発生していました。ChromeとAndroidブラウザで動画を一時停止すると、動画がバッファリングされたままになります。非非同期ajaxリクエストは、バッファリングが終了するのを待ってスタックしますが、これは決してありません。

これをbeforepagehideイベントにバインドすると修正されました。

 $("#SOME_JQM_PAGE").live("pagebeforehide", function(event)
 {
           $("video").each(function () 
           { 
               logger.debug("PAUSE VIDEO");
               this.pause();
               this.src = "";
           });
 });

これにより、ページ上のすべてのビデオタグがクリアされます。

重要な部分はthis.src="";

于 2012-06-28T18:54:21.163 に答える
2

Firefoxでの私の経験では、ビデオ要素に''属性を追加すると、Firefoxがid完全にクラッシュします...バグレポートを送信するように求められます。id要素を削除すると、正常に動作します。これがすべての人に当てはまるかどうかはわかりませんが、それが役立つ場合に備えて、私の経験を共有したいと思いました。

于 2010-07-28T05:15:48.813 に答える
1

コーディング時間を節約するには、埋め込みビデオiframe用にすでに最適化されているjqueryプラグインを使用します。

VimeoのmoogaloopAPIをjqueryツールと統合しようとして数日を費やしましたが失敗しました。いくつかの簡単なオプションについては、このリストを参照してください。

于 2011-04-13T14:34:18.690 に答える
0

これを試して:

if ($.browser.msie)
{
   // Some other solution as applies to whatever IE compatible video player used.
}
else
{
   $('video')[0].pause();
}

ただし、$。browserは非推奨であると考えてください。ただし、同等の解決策は見つかりませんでした。

于 2012-02-09T01:40:25.897 に答える