2011-02-10 17 views
5

ビデオの最後にMediaElement.jsプレーヤーを停止する方法が不思議です。私は、ビデオの最後にmediaelement.jsプレーヤーを停止する方法を知りました。私は最後のフレームを保持し、今のように最初のフレームを表示するために巻き戻さないことを望んでいました。MediaElement.jsのビデオの最後に巻き戻す代わりに停止する

この動作を変更することはできますか?

+0

そして、あなたのファイルや一時停止をロードし、多分

あなたのソースを設定した後、フレームによってそれを減少させることができますこのためのオプションが追加されていると推測する](https://github.com/johndyer/mediaelement/issues/546)。 –

答えて

3

<video>要素のデフォルトの動作は、先頭に戻ってエンドイベントをリスニングするだけでオーバーライドする必要があると思います。

var player = $('#myvideo').mediaelementplayer(); 

player.media.addEventListener('ended', function(e) { 
    player.media.setCurrentTime(player.media.duration); 
}, false); 

希望します。

+0

こんにちはJohn - ありがとうございます。私はあなたのコードをの中に、ビデオのページのの要素の中に入れました。わかりやすくするため、#myvideoはページに動画を含むdivです。私が使用した#div idを反映するように名前を変更しました。まだ始まって巻き戻し中です。私は何か間違ったことをした? - ありがとう - ドン –

+0

OPは、新しい質問[ここ](http://stackoverflow.com/questions/4996510/still-trying-to-stop-video-from-rewinding-in)を求めてこの答えにさらに返信しようとしました-mediaelement-js)。 – Pops

1

John Dyer's answerのコードは何らかの理由で実際に私のために働いていませんでした。イライラ非常にで、それはChromeでLASTとFIRSTフレーム間に点滅しているである - 私は

var videoPlayer = new MediaElementPlayer('#homepage-player', { 
    loop: false, 
    features:[], 
    enablePluginDebug: false, 
    plugins: ['flash','silverlight'], 
    pluginPath: '/js/mediaelement/', 
    flashName: 'flashmediaelement.swf', 
    silverlightName: 'silverlightmediaelement.xap', 

    success: function (mediaElement, domObject) { 
     // add event listener 
     mediaElement.addEventListener('ended', function(e) { 
      mediaElement.pause(); 
      mediaElement.setCurrentTime(mediaElement.duration); 
     }, false); 
    }, 
    error: function() { 
    } 

}); 

videoPlayer.play(); 

私がいる唯一の問題...しかし作業このバージョンを入手することができました。それ以外の場合は、FirefoxとIEで正常に動作します。

3

恐らく最も良い解決策は恐れず、メディア要素ソースから「巻き戻しからビデオ開始」ハンドラを削除することです。

mediaelementのソースコードに行き、「終了」を検索すると、最終的にはビデオの終わりに達した後に巻き戻しがメディア要素によって意図的に行われることがわかります。

この機能を削除する場合は、「終了」イベントのハンドラをmediaelementソースから削除するだけです。これは、最後のフレームと最初のフレームの間のちらつきを含むすべての問題を解決します。

+0

これを行うには、 'mediaelement-and-player.min.js'を編集して編集します。 media.addEventListener( "ended"、function(){try {c.media.setCurrentTime(0)} catch(h){} ....コメントアウトc.media.setCurrentTime(0)to /*c.media.setCurrentTime(0)*/ –

8

私はこの問題の修正を書いており、ジョンはバージョン2.10.2でマージしました。 "autoRewind"というオプションが追加され、falseに設定することで、プレイヤーが最初に戻るのを防ぐことができます。 eventlistenerが追加されていないため、これを削除する必要はありません。

$('video').mediaelementplayer({ 
    autoRewind: false 
}); 
+0

優れています。 – amustill

0

オーディオファイル

を再生するとき、私が直面したこの問題

問題は、あなたがあなたのプレーヤーを一時停止したときに、ファイルが停止しますが、再開する前に、あなたはどんなことでプレイヤーの現在の時間を短縮する必要が劇中ですあなたの場合の値は、あなたは私がのrequ GitHubの上で[問題を提起してきた

myplayer.player.play(); 
    var currentTime = myplayer.player.getCurrentTime(); 
    myplayer.player.setCurrentTime(currentTime-0.1); 
    myplayer.player.setCurrentRail(); 
関連する問題