2012-09-14 90 views
1

我嘗試了所有我能想到的解決方案,但仍無法實現此功能。我可以在包括iPhone在內的每個瀏覽器中加載和播放mp3或ogg,但唯一剩下的邊界是iPad,並且音頻不會播放。當我點擊歌曲時,它將代碼加載到音頻播放器的src中,但它不播放歌曲。同樣,這適用於其他支持HTML5的瀏覽器,但iPad不會播放該文件。如果我將文件路徑粘貼到代碼中,歌曲會播放,所以我認爲它與加載和播放功能有關,但我無法弄清楚究竟如何。HTML5音頻加載和播放將無法在iPad上運行

下面是相應的代碼。任何幫助將veeeery非常感激。提前致謝。

HTML

<div id="song-title-display"></div> 

     <div id="song-title"> 
     <ul class="list"> 
     <li><a class="tracks selected" id="1_tracks" href="1" data-file="song1">Song1</a></li> 
     <li><a class="tracks" id="2_tracks" href="2" data-file="song2">Song2</a></li> 
     </ul> 
     </div> 

    <audio id="audio-player" name="audio-player"> 
    <source id="source-file1" src="" type="audio/mpeg"> 
    <source id="source-file2" src="" type="audio/ogg"> 
    </audio> 

JS

$("#song-title a").click(function() { 
    var name = $(this).html(), 
     filename = $(this).attr("data-file"); 
     filename2 = "uploadedsongsfolder" + filename; 
     filename3 = "uploadedsongsfolder" + filename + ".mp3"; 
     filename4 = "uploadedsongsfolder" + filename + ".ogg"; 
    $('#song-title-display').html($(this).html()); 
    clickedID=$(this).attr('href'); 
    $('.tracks').removeClass('selected'); $('#'+clickedID+'_tracks').addClass('selected'); 

    document.getElementById('source-file1').src = filename3; 
    document.getElementById('source-file2').src = filename4; 
    $("#audio-player")[0].load(); 
    $("#audio-player")[0].play(); 
    return false; 
+0

你試圖創建在運行時的音頻標籤,然後EVAL腳本? – karthick

+0

是的,我沒有任何運氣。再次,奇怪的是,它可以在早期的iPhone版Safari 5中使用,但它不適用於iPad。它在iPhone上添加「類型」到源代碼之前不能在iPhone上運行。這讓我相信它真的很愚蠢。 – Johan

+0

因此,這個uploadsongsfolder這個文件夾出現在哪裏這是一個weburi或服務器中存在的一些文件夾? – karthick

回答

0

試試這個:

$("#audio-player")[0].addEventListener('canplaythrough', mobileReady, false); 

function mobileReady(){ 

    $("#audio-player")[0].play() 

}