1

Mediaelement.js を使用してビデオを再生し、javascript を使用して自動再生を機能させています。Chrome と IE10 では完全に動作しますが、Firefox と IE8 に関しては、フラッシュ フォールバックに問題があります。以下は Chrome で機能します。

jQuery('video,audio').mediaelementplayer();

if(autoPlay == "true") {
  player = new MediaElementPlayer("#"+currentPage+" video,audio");
  player.play();
}

IE8 は次を返します。 ここに画像の説明を入力

また、Firefox はエラーを返しませんが、 のalert(alert("hallo");)前にを追加するplayer.play()と、アラート ボックスを閉じたときに再生されます。

XML を多用しているため、フィドルを追加できません。

4

3 に答える 3

1

スクリプトが再生ボタンを押したとき、プレーヤーは読み込まれておらず、再生する準備ができていません。

スクリプトは、メディア要素インスタンス作成の成功関数内で再生ボタンを押す必要があります。

こちらをご覧ください:
mediaelement.js プレーヤーの状態 (一時停止、音量など) を取得するにはどうすればよいですか?

于 2014-06-16T15:32:23.577 に答える
0

すみません、半年後に解決しました:

前述のとおり、play イベントは success 関数で呼び出す必要があります。

jQuery("video,audio").mediaelementplayer();

if(autoPlay == "1") {
  media = jQuery("#"+currentPage+" video,audio")[0];
  new MediaElement(media, {success: function(media) {
      media.play();
  }});
}
于 2014-06-16T17:11:27.563 に答える
0

一部のブラウザー (具体的にはwebkit ) では、ビデオplay()の準備が完了する前にメソッドがトリガーされ、ビデオの読み込み中にハングすることがあります。

次のようなメソッドをトリガーする前に、ビデオが実際にいつ再生できるかを検出するイベントリスナーを追加することをお勧めします。play()

success : function (media, domObject) {
    media.addEventListener('canplay', function () {
        media.play();
    }, false);
} // success
于 2014-06-30T01:38:31.830 に答える