MEJS игнорирует тег предварительной загрузки после setSrc () - PullRequest
1 голос
/ 09 ноября 2011

привет ~ пытаюсь достать видеоплеер на базе MEJS с переключаемыми пользователями видео.

Проблема, которую я испытываю, заключается в том, что когда я звоню setSrc(), и флэш, и html5-плеер предварительно загружают все видео перед тем, как начать воспроизведение нового видео, независимо от того, что указывает тег preload. в идеале видео начинает воспроизводиться при загрузке данных.

/* code and comments trimmed for your viewing pleasure */
<video src="myvideo1.mp4" width="800" height="450" preload="none" smoothing autoplay></video>

<script>
    var player = new MediaElementPlayer('video', {
        enablePluginDebug: true,
        plugins: ['flash','silverlight'],
        defaultVideoWidth: 800, defaultVideoHeight: 450,
        videoWidth: -1, videoHeight: -1,
        loop: false,
        features: ['playpause','progress','current','duration','fullscreen'], 
        success: function (mediaElement, domObject) { 
            mediaElement.play();
        },
        error: function () { 
            alert('error!');
        }
    });

    var currentVid = 1;

    var vidnames = new Array("(null)",
        "myvideo1.mp4",
        "myvideo2.mp4",
        "myvideo3.mp4");

    function switchvid (vidnum) {
        currentVid = vidnum;

        player.pause();
        player.setSrc( vidnames[vidnum] );
        player.play();

        return false;
    }

</script>

<A HREF="#" onClick="return switchvid(1)"><IMG SRC="ch01x.png"></A>
<A HREF="#" onClick="return switchvid(2)"><IMG SRC="ch02x.png"></A>
<A HREF="#" onClick="return switchvid(3)"><IMG SRC="ch03x.png"></A>

пробовал preload="none", preload, preload="auto" все с одинаковыми результатами ... проигрыватель просто зависает при заполнении буфера всей загрузкой, затем начинает играть.

1 Ответ

0 голосов
/ 10 ноября 2011

очевидно, функция load () это обрабатывает.Непонятно отношение load () к атрибутам PRELOAD (если есть), но для меня это работает сейчас.

 var player = new MediaElementPlayer('video', {
    // etc
    success: function (mediaElement, domObject) { 
        mediaElement.load();
        mediaElement.play();
    }
 }

function switchvid (vidnum) {
    currentVid = vidnum;

    player.pause();
    player.setSrc( vidnames[vidnum] );
    player.load();
    player.play();

    return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...