我正在创建在收到消息时触发的声音警报。它们在 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>