2

我正在创建在收到消息时触发的声音警报。它们在 Chrome 和 Firefox 中运行良好,但在 IE 9 和 Safari 中不起作用。这是一些代码:

var audioElement = document.createElement('audio');
audioElement.setAttribute('src', '/sounds/blip.wav');
audioElement.setAttribute('preload', 'auto');
audioElement.load()

    function bipTrades() {
  var tradeCheck = document.getElementById('tradeSound');
  if (tradeCheck.checked == true) {
        audioElement.play();
  }
  else {
    console.log("silent alert")
  }
};

所以当消息进来时,函数 bipTrades 被触发。

知道如何在 IE 和 Safari 中进行这项工作吗?

帮助将不胜感激。提前致谢!

编辑 好吧,我似乎找到了原因。这是一个文件格式问题。使用 mp3 它可以在 IE 中运行,但 safari 似乎根本不支持任何音频。我用这个脚本来检查:

<script type/javascript>
        function checkAudioCompat() {
            var myAudio = document.createElement('audio');

            if (myAudio.canPlayType) {
                // CanPlayType returns maybe, probably, or an empty string.

                if ( "" != myAudio.canPlayType('audio/mpeg')) {
                    alert("mp3 supported");
                }

                if ( "" != myAudio.canPlayType('audio/ogg; codecs="vorbis"')) {
                    alert("ogg supported");
                }

                if ( "" != myAudio.canPlayType('audio/mp4; codecs="mp4a.40.5"')) {
                    alert("aac supported");
                }
            }
            else {
                alert("no audio support");
            }
        }
    </script>

<button onclick="checkAudioCompat();">
    Test for audio format type
</button>
4

0 回答 0