音频元素在Safari中运行良好,但在XCode模拟器(web视图)中中断

Audio element works fine in Safari but breaks in XCode Simulator (web view)

本文关键字:模拟器 XCode web 但在 视图 中断 元素 Safari 运行 音频      更新时间:2023-09-26

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

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

声音在点击/触摸事件中播放。它在我的Mac上的Safari中运行良好,音乐播放。我正在创建一个iOS应用程序,尽管有一个网络视图,我在那里加入了我的HTML5应用程序。当我在iPad6.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);
    }

iOS在HTML5方面似乎有一些局限性。当第一音频元素在背景中播放时,具有一个以上的音频元素并播放第二音频元素似乎是困难的。

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