1

したがって、HTML に audio 要素があります。

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

クリック/タッチイベントでサウンドが再生されます。Mac の Safari では正常に動作し、音楽が再生されます。HTML5アプリを追加するWebビューを使用してiOSアプリを作成しています。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);
    }
4

1 に答える 1

0

HTML5に関しては、iOSにはいくつかの制限があるようです。最初の音声要素がバックグラウンドで再生されている間に、複数の音声要素を持ち、2 番目の音声要素を再生することは難しいようです。

代わりに AVAudioPlayer を使用して問題を解決しました。JavaScript を使用して、サウンドを再生するときに Web ビューのビュー コントローラーに通知します。

于 2013-09-02T10:55:08.710 に答える