HTML音频:IE中的currentTime

时间:2013-01-17 14:35:16

标签: audio windows-phone-8

我正试图从声音文件中的某个点开始播放声音(mp3)。我希望它可以在大多数移动设备上运行,但确实如此,但似乎Windows Phone 8存在问题。它可以在三星Galaxy和iPhone上正常工作,但在WP上,声音总是从头开始,忽略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 个答案:

答案 0 :(得分:1)

了解更多相关信息。事实证明,在进行play()调用之前,你无法设置currentTime。至少不在Windows手机上。所以我必须首先调用play然后(在x ms之后)我可以设置currentTime。

我现在的想法是在我的声音文件中保持沉默并循环不断地保持沉默。当我想播放声音时,我可以设置当前时间。声音部分结束后,我再次启动静音循环。使用多轨道要容易得多,但遗憾的是我没有这个选项。

因此,可以在Windows Phone 8上使用currentTime。但是我遇到了另一个问题。由于我现在一直在播放声音,当手机进入睡眠模式时,似乎javascript冻结(导致静音循环停止)但无论如何都要播放声音。所以整个mp3文件将从头到尾运行。我尝试使用onfocusout事件来停止循环并暂停声音,但它不起作用。将继续调查这种相当罕见和错误的行为。