mediaelement.js - android默认浏览器和dolphin浏览器加载mp3问题

时间:2013-03-18 00:24:08

标签: android browser load mediaelement.js dolphin-browser

美好的一天,

我正在为自己建立一个网站(我是作曲家/制作人),我正在使用Media Element作为主要的演示页面。该页面正在建设中,链接如下:

http://www.vincentrubinetti.com/listen.html

http://www.vincentrubinetti.com/listen.js

以下是我认为的相关功能和代码:

function initPlayer()
{
    player = new MediaElementPlayer('#listen_player',{
        success: function (mediaElement, domObject) 
        { 
            mediaElement.addEventListener('play', resumeSong, false);
            mediaElement.addEventListener('ended', playNextSong, false);
            mediaElement.addEventListener('pause', pauseSong, false);
        }
    });

    [omitted]
}

function setSong(element)
{
    if (element != "")
    {
        unselectAllSongs();
        document.getElementById(element).className = "listen_song_highlight";

        [omitted]

        var newSrc = document.querySelector("#"+element+" .listen_song_source").title;
        player.pause();
        player.setSrc(newSrc);
        player.load();
    }
}

function playSong(element)
{
    document.querySelector("#"+element+" .listen_song_status").innerHTML = "playing";
    player.play();
}

function playNextSong()
{
    var newSong = document.querySelector(".listen_song_highlight + div.listen_song");
    if (autoplay && newSong != null)
    {
        setSong(newSong.id);
        playSong(newSong.id);
    }
    else
    {
        document.querySelector(".listen_song_highlight .listen_song_status").innerHTML = "stopped";
    }
}

所有CSS结尾似乎都没问题。它找到列表中的下一首歌并设置新的源;我已通过警报和其他调试验证了它是否正确。然而,在Android默认浏览器和Dolphin浏览器上,它似乎无法有时加载mp3,并过早地触发“已结束”事件以转到下一首歌曲。结果是,在完成一个播放后,它似乎跳过2-3首歌曲。即使让它播放一个,点击歌曲div和播放器播放按钮也需要一些探索。我可以输入html中的相同网址,浏览器可以正常播放/下载,访问或加载时也没问题。

以下是重复播放列表的3个mp3文件,供参考。他们是我的,但却是真正音乐的占位符。

NEW/music/creation.mp3
NEW/music/startup.mp3
NEW/music/win.mp3

请注意,所有这些功能都适用于Chrome,Firefox,IE8 +和Android Chrome(我还没有测试过iPhone或iPad)。

我的诊断是否正确?谁能指出我正确的方向?有没有经验表明MediaElement在Android默认和Dolphin浏览器上无法正常工作?

1 个答案:

答案 0 :(得分:2)

我在android中遇到同样的问题(但是有视频...)

我被告知这是一个文件未及时下载的问题 - 即浏览器开始下载,但由于文件没有下载,因此它是0:00长,因此触发了结束事件。

如果有一些方法可以使视频/音频更快下载,那么就可以解决问题。

奇怪的是,如果设备具有良好的WiFi,那么这个问题基本上就会消失。

看看John Dyer在这里说了些什么:

https://github.com/johndyer/mediaelement/issues/543