如何使用mediaelement.js获取HTML5音频播放列表?

时间:2011-06-18 10:08:09

标签: mediaelement.js playlist playlists

我试图在mediaelement.js中搜索音频播放列表的示例。但我发现没有,是mediaelement.js支持音频播放列表吗?如果是这样,请支持我的示例代码或链接。非常感谢你。

2 个答案:

答案 0 :(得分:5)

我设法获得了一个以WordPress主题工作的播放列表的超级基本(阅读:hacky)演示。您所要做的就是使用一组ID,一个类或在这种情况下使用<audio>标记设置多个媒体元素。

然后你可以使用JS来查看玩家何时结束(停止播放音乐)并运行一些基本条件以查看哪个玩家正在玩哪个玩家,接下来应该播放什么玩家以及如果没有下一个玩家,请从头开始。这又是非常hacky,但它似乎对我有用。

HTML:

<figure class="entry-audio">
    <audio id="wp_mep_1" controls="controls">
        <source src="linkto/music.mp3" type="audio/mp3" />
        <object width="100%" height="23" type="application/x-shockwave-flash" data="flashmediaelement.swf">
            <param name="movie" value="flashmediaelement.swf" />
            <param name="flashvars" value="controls=true&amp;file=linkto/music.mp3" />
        </object>
    </audio>
</figure>
<!-- .entry-audio -->

<figure class="entry-audio">
    <audio id="wp_mep_2" controls="controls">
        <source src="linkto/music.mp3" type="audio/mp3" />
        <object width="100%" height="23" type="application/x-shockwave-flash" data="flashmediaelement.swf">
            <param name="movie" value="flashmediaelement.swf" />
            <param name="flashvars" value="controls=true&amp;file=linkto/music.mp3" />
        </object>
    </audio>
</figure>
<!-- .entry-audio -->

<figure class="entry-audio">
    <audio id="wp_mep_3" controls="controls">
        <source src="linkto/music.mp3" type="audio/mp3" />
        <object width="100%" height="23" type="application/x-shockwave-flash" data="flashmediaelement.swf">
            <param name="movie" value="flashmediaelement.swf" />
            <param name="flashvars" value="controls=true&amp;file=linkto/music.mp3" />
        </object>
    </audio>
</figure>
<!-- .entry-audio -->

的JavaScript:

jQuery(function (jQuery) {
    // make an array for the mediaelement players
    var mediaElementPlayers = new Array();

    // run mediaelement.js (Ignore options)
    jQuery('audio').mediaelementplayer({
        iPadUseNativeControls: false,
        iPhoneUseNativeControls: false,
        AndroidUseNativeControls: false,
        pauseOtherPlayers: true,
        success: function (mediaElement, domObject) {
            // add this mediaelement to the mediaElementPlayers array
            mediaElementPlayers.push(mediaElement);
            console.log(mediaElement);
            mediaElement.addEventListener('ended', function (e) {
                playNext(e.target);
            }, false);
        },
        keyActions: []
    })

    // find the current player and start playing the following player
    function playNext(currentPlayer) {
        for (i = 0; i < mediaElementPlayers.length; i++) {
            if (mediaElementPlayers[i] == currentPlayer) {
                if (mediaElementPlayers[i + 1] == undefined) { // If this is the last player Start from the beginning
                    mediaElementPlayers[0].play();
                } else { // Start the next player
                    mediaElementPlayers[i + 1].play();
                }
            }
        }
    }
});

答案 1 :(得分:1)

不,没有播放列表。 如果您正在寻找有玩家的玩家,请点击此处:http://praegnanz.de/html5video/ 此外,您只需使用mediaelementjs JavaScript API即可轻松制作播放列表。这是非常简单的任务,IMO不需要额外的支持。