有谁知道为什么这个音频在FireFox中不起作用?

时间:2012-07-17 06:37:29

标签: html5 firefox audio

我一直在搜索并将其简化为导致问题的原因。

<audio id="SoundHandle" style="display:none" />
<script type="text/javascript">
    SoundHandle = document.getElementById('SoundHandle');
    SoundHandle.src = 'test.ogg';
    SoundHandle.play();
</script>

以上代码在Chrome中运行良好,当我仍然进行适当的检查时,它适用于IE 9中的MP3。但是在FireFox中,它根本不会发出声音,当我将其更改为这个布局,我把它放在页面的顶部。现在在Firefox中,除了不播放声音之外,脚本标签下方的任何内容都不会呈现给页面。

有人对此有所了解吗?

2 个答案:

答案 0 :(得分:0)

有几件事:

有一些特定于JS的事情可以继续,在这里,还有一些特定于服务器的事情可能会继续发生。

要解决上述所有问题,首先尝试一下。

<audio id="player" controls>
    <source src="test.ogg" type='audio/ogg; codecs="vorbis"'>
</audio>

看看是否能解决您的游戏问题。 如果确实如此,那么您可能正在处理JavaScript问题。

但是如果该播放器根本不让你播放音频,即使它是100%的HTML,那么你正在研究服务器问题。

有两个罪魁祸首。第一个是MIME类型。 MIME类型是您在该源元素的“type”属性中看到的第一部分。

他们告诉程序他们应该如何读取文件中的数据。 在过去,您会在CSS(type =“text / css”)或JS(type =“text / javascript”)中看到它。

对于那些事情,它根本没关系 - 你的浏览器知道如何处理CSS以及如何处理JS,它们是一件大事。

FireFox 要求您的服务器必须设置为使用正确的MIME类型提供.ogg / .oga / .ogv文件。 即:FF需要知道将它们视为OGG文件而不是文本文件。

看看这里: https://developer.mozilla.org/en/Configuring_servers_for_Ogg_media

那应该是你调试的起点。 之后,我们可以谈谈JavaScript。

它在Chrome中运行的原因是因为Chrome可以猜测它是一个.ogg文件,即使服务器建议它是“text / html”文件。

答案 1 :(得分:0)

我的朋友,它正在发挥作用:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
    var mediaElement = document.getElementById("myMediaElementID");
    mediaElement.pause();
    mediaElement.src = "";
</script>
</head>
<body>
<audio id="demo" src="song.ogg"></audio>

<div>
  <button onclick="document.getElementById('demo').play()">Play the Audio</button>
  <button onclick="document.getElementById('demo').pause()">Pause the Audio</button>
  <button onclick="document.getElementById('demo').volume+=0.1">Increase Volume</button>
  <button onclick="document.getElementById('demo').volume-=0.1">Decrease Volume</button>
</div> 
</body>
</html>