HTML音频:在IE中的currentTime

5

我想在音频文件的某个特定点开始播放声音(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个回答

1

关于此事,我收到了更多信息。结果发现,在Windows手机上,不能在播放之前设置currentTime。所以我必须先调用play,然后(经过x毫秒后)才能设置currentTime。

我的想法是在我的声音文件中添加一些静音并持续循环。当我想播放声音时,我只需设置currentTime即可。当声音部分完成后,我只需重新开始静音循环。使用多轨道会更容易,但不幸的是我没有这个选项。

因此,在Windows Phone 8上可以使用currentTime。但我遇到了另一个问题。由于现在一直在播放声音,当手机进入睡眠模式时,似乎JavaScript会冻结(导致静音循环停止),但声音仍然播放。因此,整个mp3文件将从头到尾运行。我尝试使用onfocusout事件来停止循环并暂停声音,但它不起作用。将继续研究这种相当罕见和有缺陷的行为。


你好,我有类似的问题。你找到解决方案了吗? - Azzy Elvul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接