0

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

<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 中,除了不播放声音之外,脚本标签下方的任何内容都不会呈现到页面上。

有人对这个有了解吗?

4

2 回答 2

0

有几件事:

这里可能会发生一些特定于 JS 的事情,也可能会发生一些特定于服务器的事情。

要解决上述所有问题,请先尝试此操作。

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

看看能不能解决你的演奏问题。如果是这样,那么您可能正在处理 JavaScript 问题。

但是,如果该播放器根本不允许您播放音频,即使它是 100% HTML,那么您正在查看服务器问题。

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

他们告诉程序他们应该如何读取文件中的数据。在过去,您会在 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 文件,即使服务器暗示它是一个“文本/html”文件。

于 2012-07-17T07:32:01.300 回答
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>
于 2012-07-17T08:14:50.370 回答