2013-01-17 67 views
5

我試圖播放從聲音文件中某個點開始的聲音(mp3)。我希望它可以在大多數移動設備上工作,但它確實如此,但似乎Windows Phone 8存在問題。它在Samsung Galaxy和iPhone上運行良好,但在WP上,聲音始終從頭開始,忽略currentTime設置。有任何想法嗎? 謝謝!HTML音頻:IE中的currentTime

var sfile = "test.mp3'; 
    var myobj; 
    function init() 
    { 

     myobj=document.createElement('audio'); 
     myobj.style.position="relative"; 
     myobj.style.bottom=0; 
     myobj.src = sfile; 
     myobj.id='sound'; 

     document.body.insertBefore(myobj,document.body.lastChild); 
     myobj.load(); 
    } 
    //called when pressing a button 
    function test() 
    { 
     myobj.currentTime=30.0; 
     myobj.play() 
    } 

回答

1

瞭解了更多信息。原來你在進行play()調用之前不能設置currentTime。至少不在Windows手機上。所以我必須先調用播放,然後(在x毫秒之後)我可以設置當前時間。

我現在的想法是在我的聲音文件和循環中保持一些沉默不斷。當我想播放聲音時,我可以設置當前時間。當聲音部分完成後,我再次啓動沉默循環。使用多軌道會容易得多,但我不幸的是沒有這個選項。

因此,可以在Windows Phone 8上使用currentTime。但是我遇到了另一個問題。由於我現在一直在播放聲音,所以當手機進入睡眠模式時,看起來JavaScript會凍結(導致靜音循環停止),但無論如何也要播放聲音。所以整個mp3文件將從頭到尾運行。我嘗試使用onfocusout事件來停止循環並暫停聲音,但它不起作用。將繼續調查這種相當罕見和有問題的行爲。

+0

嗨,我有類似的問題。你有沒有好的解決方案? –