1

MediaElementPlayer在我的 Web 应用程序中使用该类时遇到问题。我想要完成的是每次播放器播放到最后时触发一个方法。我的代码如下所示:

$(document).ready(function()
{
    $('#audio-player').mediaelementplayer("#audio-player", 
    {
        alwaysShowControls: true,
        features: ['playpause','volume','progress'],
        audioVolume: 'horizontal',
        audioWidth: 400,
        audioHeight: 120,
        success: function(mediaElement, domObject)
        {
            mediaElement.addEventListener('ended', loadNew, false);
        }
    });

    function loadNew()
    {
        Alert("Track ended callback");
    }

    $(".play-button").click(function()
    {
        alert("Load new");
    });
});

我的 jQuery 版本是 1.7.2。我已经尝试过其他变体,例如var player = new Media...然后player.addEventListener,但都没有任何运气。有趣的是,这在昨天确实有效,而今天却没有。

有什么建议么?谢谢!

4

2 回答 2

3

我已经设法修复它,对于所有未来的读者,代码发布在下面。变化不大,但它就像魅力一样。

$(document).ready(function()
{
    var player = new MediaElementPlayer("#audio-player",
    {
       alwaysShowControls: true,
       features: ['playpause','volume','progress'],
       audioVolume: 'horizontal',
       audioWidth: 400,
       audioHeight: 120,
       success: function(mediaElement, domObject)
       {
           mediaElement.addEventListener('ended', loadNextTrack, false);
       }
    });

    $(".play-button").click(function()
    {
        alert("Load new");
    });
});

function loadNextTrack(mediaElement, domObject)
{
   alert("Next track callback");
}
于 2013-02-10T12:38:35.523 回答
1

在您的 mediaelementplayer() 函数调用中,请确保不要重复“#audio-player”作为第一个参数:

$(document).ready(function()
{
    $('#audio-player').mediaelementplayer( 
    {
        alwaysShowControls: true,
        features: ['playpause','volume','progress'],
        audioVolume: 'horizontal',
        audioWidth: 400,
        audioHeight: 120,
        success: function(mediaElement, domObject)
        {
            mediaElement.addEventListener('ended', loadNew, false);
        }
    });

    function loadNew()
    {
        Alert("Track ended callback");
    }

    $(".play-button").click(function()
    {
        alert("Load new");
    });
});

它应该可以解决您的问题。

于 2013-05-22T13:52:43.107 回答