好日子,mediaelement.js - Android的默認瀏覽器,海豚瀏覽器加載MP3的問題
我目前正在建設一個網站爲自己(我是一個作曲家/製作人),和我使用的媒體元素主演示頁面。該網頁正在建設中,在下面的鏈接:
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,火狐,IE8 +,和Android瀏覽器(我沒有測試iPhone或iPad還)。
我的診斷是否正確?任何人都可以將我指向正確的方向嗎? MediaElement在Android默認和Dolphin瀏覽器上無法正常工作嗎?
如果它是一個服務器或MediaElement的異常,我很好只是讓它是。但是,如果這是我的代碼,我不能休息,直到它是正確的!但是,我無法想象會發現我的代碼有什麼問題。由於Web開發的臨時性/零碎性,可能需要一些解決方法。 – 2013-03-18 00:25:43