HTML5音频IE9错误:意外调用方法或属性访问

时间:2012-08-17 09:03:08

标签: javascript jquery html5 internet-explorer audio

我在IE9中的部分JavaScript代码存在问题。

当我启动页面时出现错误:意外调用方法或属性访问

这是html文件中的音频标签:

<audio controls loop preload id="musicGame">
  <source src="mp3/ambient.ogg" type="audio/ogg" />
  <source src="mp3/ambient.mp3" type="audio/mpeg" />
</audio>

我在javascript中调用我的音频标签:

musicGame = $('#musicGame')[0];

然后我暂停它,因为我有一个静音按钮,我需要暂停我页面上的所有歌曲,以便静音工作。

musicGame.pause();

这是IE9抛出错误的地方。

任何想法可能出错?

3 个答案:

答案 0 :(得分:2)

IE中不支持

oogmp3但是在IE9 +中支持..

尝试设置preload属性,因为IE9可能存在preload属性问题,因此请尝试将其设置为preload="metadata"

<audio controls loop preload="metadata" id="musicGame">
   <source src="mp3/ambient.ogg" type="audio/ogg" />
   <source src="mp3/ambient.mp3" type="audio/mpeg" />
</audio>
  • 元数据:表示仅提取音频元数据(例如长度);它还允许浏览器只下载足够的文件来获取大小,尺寸和持续时间等元数据。

有时preload="auto"可能会有效,但您必须进行测试!?

您可能需要在audio元素src属性中指定音频源,而不必使用子source元素

<audio src="mp3/ambient.mp3" controls autoplay loop  id="musicGame"> 
    HTML5 audio not supported
</audio>

对HTML5使用正确的DOCTYPE

<!DOCTYPE html>

正在使用正确的meta tag这样的IE9吗?

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

而不是使用$('#musicGame')[0]你还尝试过使用?

document.getElementById("musicGame");

一些有用的资源链接:

答案 1 :(得分:0)

Mp3有效,IE的问题是播放.wav和.ogg

适用于IE9 - Chrome - Safari和Firefox

var sound = new Audio("/pop.mp3");
sound.play();

答案 2 :(得分:0)

将DOCTYPE声明<!DOCTYPE html>添加到html代码的开头。它告诉浏览器如何在符合标准的模式下呈现页面。现在HTML5音频将在IE9中运行。