音频元素在Safari中工作正常但在XCode Simulator中断(Web视图)

时间:2013-09-01 20:48:57

标签: javascript ios xcode html5

所以我的HTML中有一个音频元素:

    <audio id="success-sound" class="hidden">
        <source src="sound/success.mp3" type="audio/mpeg">
    </audio>

声音在点击/触摸事件中播放。它在我的Mac上的Safari中工作正常,音乐播放。我正在创建一个iOS应用程序虽然有一个Web视图,我可以使用我的HTML5应用程序。当我在iPad 6.1模拟器中尝试应用程序并调试控制台时,我可以看到此错误:

INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.

这是失败的路线:

        var successSound = document.getElementById("success-sound");
        successSound.currentTime = 0;
        successSound.play();

有什么想法吗?

顺便说一下,我有另一个带有音轨的音频元素:

    function startSoundtrack() {
        soundtrack.play();
        soundtrack.addEventListener('ended', function () {
            var audio = this;
            setTimeout(function () {
                audio.currentTime = 0;
                audio.play();
            }, 5000);
        }, false);
    }

1 个答案:

答案 0 :(得分:0)

似乎iOS在HTML5方面有一些限制。当第一个音频元素在后台播放时,似乎很难拥有多个音频元素并播放第二个音频元素。

我通过使用AVAudioPlayer解决了这个问题,当我想播放声音时,我使用JavaScript来通知视图控制器Web视图。