0

Fancybox フレーム内に JW Player を埋め込んでいます。私が望んでいるのは、フレームが閉じている場合にビデオの再生/読み込みが停止することです。コード、および私が試した他のすべては、Chrome では機能しますが、IE と FF では機能しません。

私が現在持っているもの:

$('.lightbox').fancybox({
    //href: jThis.attr('href'),
    type: 'inline',
    padding: 15,
    width: 960,
    height: 540,
    autoSize: false,
    scrolling: 'no',
    enableEscapeButton: true,
    afterClose: function() {$("#large-video").empty();} //This is what I've tried changing
});

つまり、「jwplayer().stop()」と「function() {jwplayer().stop()};」を試してみました。どちらも Chrome で問題なく動作しますが、ビデオは IE9 で引き続き再生されます。と FF. むしろここで途方に暮れています. 誰かが前にこれをやった?

4

2 に答える 2

0

ティアダウン コードで jwplayer メソッド .remove() を使用する必要があります。ライトボックス要素を削除するだけでは十分ではありません。

JWPlayer API ドキュメントから取得。

.remove() setup() 呼び出しの逆であるため、この呼び出しはページから JW Player を削除します。これにより、プレーヤーが再生を停止し、DOM が元の状態にリセットされ、すべてのイベント リスナーとタイマーがクリーンアップされます。別のプレーヤーが設定されている場合は、リスナーを再インスタンス化する必要があります。

http://support.jwplayer.com/customer/portal/articles/1413089-javascript-api-reference#remove

これにより、関連する問題 (これは私が遭遇した問題) も修正されます。これは、ライトボックス内にいるプレーヤーが、2 回目の起動試行でロードに失敗するというものです。

注: この場合のエラーは次のようになります。

"準備完了" のイベント ハンドラーのコールバック中にエラーが発生しました。エラー: null のプロパティ 'clientWidth' を読み取れません jwpsrv.js:1 キャッチされない TypeError: null のプロパティ 'ownerDocument' を読み取れません。

于 2015-09-28T09:52:30.143 に答える
0

同様の問題がありました。修正は、JWPlayer を停止してから、それをempty()含むremove()DOM 要素に移動することでした。次のように:

jwplayer().stop();
$("#container").empty().remove();

#containerプレーヤーを含む div はどこにありますか。ビデオをもう一度再生したい場合は、DOM でプレーヤーを再インスタンス化する必要があります。

于 2012-10-29T19:42:36.727 に答える