javascript - 音频元素在 Safari 中工作正常,但在 XCode Simulator 中中断(Web View )

标签 javascript ios xcode html

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

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

声音在点击/触摸事件时播放。它在我的 Mac 上的 Safari 中运行良好,可以播放音乐。我正在创建一个 iOS 应用程序,尽管它有一个 Web View ,我在其中嵌入了我的 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);
    }

最佳答案

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

我已经通过使用 AVAudioPlayer 解决了这个问题,当我想播放声音时,我使用 JavaScript 通知 Web View 的 View Controller 。

关于javascript - 音频元素在 Safari 中工作正常,但在 XCode Simulator 中中断(Web View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562788/

相关文章:

javascript - 将数组中的数字相加。得到奇怪的输出。 JavaScript

javascript - 单击时让 Highcharts 工具提示消失

ios - swift:navigationcontroller.toolbar 设置

ios - 选择 时如何从 TableView 中隐藏行

ios - 如何绘制高斯模糊效果?

xcode - Mac 上的蓝牙 RSSI/查询扫描 - 无需连接即可检测到 iPhone 的接近度?

iphone - (单点触控): The Apple iPhone SDK is not installed

Javascript 异步函数调用 : Retrieve calling function paramters in callback function

javascript - 如何在 Firefox 和 Chrome 中通过网站上的链接打开文件夹?

ios - 使用Xcode重置证书