0
我試圖獲得播放列表中每首歌曲的持續時間。它給我NaN。我讀到,如果瀏覽器沒有足夠的時間來讀取音頻數據,那麼它返回NaN。 所以我用song.onloadedmetadata = duration = song.duration. // song is audio object.
它也給NaN。如何獲取HTML5音頻播放器中播放列表中每首歌曲的時長?
如果我在song.onloadmetadata = duration = song.duration
之前寫alert("hello");
那麼它會顯示歌曲的持續時間。這意味着時間瀏覽器有足夠的時間來計算持續時間。但我不希望每次載入頁面時都顯示警報。
其實我從每個循環加載所有來自XML的歌曲。我試圖讓每首歌的持續時間都在那裏。這樣我就可以在HTML頁面上打印歌曲名稱及其持續時間。 這是我的代碼,請建議我該怎麼做。
function xmlParser(xml)
{
//alert("Inside XML block");
$(xml).find("songs").each(function()
{
$(xml).find("song").each(function(i)
{
songurl = $(this).find("music").text();
id = $(this).find("music").attr("id");
image = $(this).find("image").text();
sname = $(this).find("name").text();
song_name.push(sname);
album_image.push(image);
playlist.push(songurl);
//Code to get Each Song Duration in Playlist
song.src = songurl;
song.onloadedmetadata = duration = song.duration;
//duration=song.duration;
var sec= new Number();
var min= new Number();
sec = Math.floor(duration);
min = Math.floor(sec/60);
min = min >= 10 ? min : '0' + min;
sec = Math.floor(sec % 60);
sec = sec >= 10 ? sec : '0' + sec;
//code For Each song duration Ends Here
$("#SongsList").append('<li id="'+id+'"> <a href="#" id="'+id+'">' +sname+ ' </a> <h6 style="color:#74dad5; font-family:verdana; padding-left:279px;">'+min+' : '+sec+' </h6></li> ');
});
});
}
請告訴我,我錯了,並提供了我的代碼,這樣我可以得到循環內的持續時間和打印我的網頁上。
您是否控制了音頻文件,還是來自其他網站?如果你控制這些文件,那麼預處理將是有序的。這些文件是什麼格式? .MP3? .M4A? .OGG?混合物? –
@MultimediaMike我正在製作音頻播放器演示,是的,我正在控制聲音,它是MP3格式。我不瞭解預處理命令。請解釋 –