Остановка вместо перемотки в конце видео в MediaElement.js - PullRequest
5 голосов
/ 11 февраля 2011

Мне интересно, как остановить проигрыватель MediaElement.js в конце видео. Я задавался вопросом, как остановить проигрыватель mediaelement.js в конце видео. Я надеялся удержать последний кадр и не перематывать, чтобы показать первый кадр, как сейчас.

Можно ли изменить это поведение?

Ответы [ 5 ]

8 голосов
/ 28 января 2013

Я написал исправление для этой проблемы, и Джон слился в версии 2.10.2. Теперь есть опция «autoRewind», которую вы можете установить в false, чтобы предотвратить возврат игрока в начало. Eventlistener не добавлен, и больше нет необходимости его удалять.

$('video').mediaelementplayer({
    autoRewind: false
});
3 голосов
/ 13 декабря 2011

Вероятно, лучшее решение - не бояться и удалить обработчик «перемотка к началу видео» из источника медиаэлемента.

Если вы зайдете в исходный код для медиаэлемента и выполните поиск «окончено», вы в конечном итоге увидите, что перемотка после достижения конца видео фактически выполняется намеренно медиаэлементом.

Если вы хотите удалить эту функциональность, не стесняйтесь просто удалить этот обработчик для «завершенного» события из источника медиаэлемента. Это решает все проблемы, включая мерцание между последним и первым кадром, упомянутое в некоторых других ответах на этот вопрос.

3 голосов
/ 11 февраля 2011

Я считаю, что стандартным поведением элемента <video> является возврат к началу, поэтому вам просто нужно переопределить это, прослушивая завершенное событие.

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

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

Надеюсь, это поможет!

1 голос
/ 13 декабря 2011

Код в Ответ Джона Дайера мне тоже почему-то не помог.Однако я смог заставить эту версию работать ...

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();

Единственная проблема, с которой я столкнулся - это очень разочарование, это то, что она мерцает между LAST и FIRST кадрамив хроме.В противном случае он работает, как и ожидалось, в Firefox и IE ...

0 голосов
/ 15 марта 2016

С этой проблемой я столкнулся при воспроизведении аудиофайлов

Проблема в игре, когда вы останавливаете проигрыватель, файл останавливается, но перед возобновлением вам нужно уменьшить текущее время проигрывателя на любое значение в вашем случае, вы можете уменьшить его на кадр, возможно

после установки источника, загрузки файла и приостановки, затем

    myplayer.player.play();
    var currentTime = myplayer.player.getCurrentTime();
    myplayer.player.setCurrentTime(currentTime-0.1);
    myplayer.player.setCurrentRail();
...