new Audio('sounds/mysound.mp3').play();
我使用上面的javascript在网络项目上播放声音,在我的笔记本电脑上运行Windows 7,在Firefox和Google Chrome中都进行了测试,一切正常。
我遇到的问题是,在Windows XP上,声音根本不会播放?我确实理解上面的浏览器支持有点粗略,因为mp3显然不完全支持,例如在firefox中..所以我有点困惑?为什么它在我的Windows 7机器上播放,而不是在Windows XP机器上播放,即使在同一个浏览器中也是如此?
我可能不得不看看用插件或其他东西做声音,jPlayer可以播放没有可见的播放器图标等的声音......因为所有的演示都在屏幕上显示某种形式的播放器?
任何帮助表示感谢。
谢谢保罗
编辑*** 我想如果OGG文件能够正常工作,我必须在声音文件夹中同时使用两种声音文件格式,然后使用javascript变量根据正在使用的broswer添加所需的.ext。
check which browser
extVariable = either '.mp3' or '.ogg' accordingly
new Audio('sounds/mysound'+extVariable).play();
这样我就不需要if else statments每次我想调用声音:)只需将.ext变量设置在页面顶部。
我在http://codepen.io/PaulBrUK1972/full/pGdza进行了以下音频测试 就像我以为使用Windows XP一样,ogg文件将在firefox中播放,但mp3不会。有趣的是,知道mp3是否在其他人的Windows 7机器上播放,就像它在我的机器上播放一样,即使它不应该?
答案 0 :(得分:0)
Internet Explorer 9+ can play: MP3
Firefox 3.6+ can play: WAV and OGG
Chrome 3+ can play: MP3 and OGG
Safari 4+ can play: MP3 and WAV
Opera 9.5+ can play: WAV and OGG
以上是可以在给定浏览器中播放的音乐文件类型列表,这是我从Pro HTML5 Games - Aditya Ravi Shankar这本书中获取的内容。这是一本很好的书,我仍在努力完成它。 如果浏览器没有导致问题,您应该检查以下内容: 检查是否已插入扬声器/耳机/耳机。 检查音量是否太低。 检查其他音频是否在您的PC上运行,在YouTube上播放曲目或某些媒体播放器。 检查声音/音量设置并调整设置,您可能会从不正确的频道发送音频。 检查您是否有最新的声音驱动程序。 如果这不起作用,请检查您的声卡是否没有损坏。
答案 1 :(得分:0)
Firefox依靠计算机上可用的codex来播放mp3以解决许可问题,因此可能会导致问题。
如果您正在寻找一个声音库来抽象支持具有可变支持的浏览器上的音频问题,我建议SoundJS,我帮助开发。它在可用时使用最新的音频标准,并为旧版浏览器和系统提供闪存备用。使用SoundJS,您可以编写广泛支持的单个代码库,包括在移动设备上。
希望有所帮助。
答案 2 :(得分:0)
在创建声音的document.createElement("audio").canPlayType(type)
元素之前,大多数html5声音库(例如sm2)可以解决some browsers support only certain audio types调用audio
这一事实。
所以我建议你创建一个帮助函数来创建你的音频声音,看起来像下面的内容(对不起,如果未经测试的话,那就是抱歉):
var audioTypes = {
"ogg": "audio/ogg",
"mp3": "audio/mp3"//etc
}
//src is an array of sources for a type
var createAudio = function(src, options) {
var audio = document.createElement("audio");
for (var i = 0; i < src.length; i++) {
var type = src[i].slice(src[i].lastIndexOf(".") + 1);
if(audio.canPlayType(audioTypes[type]) {
audio.type = audioTypes[type];
audio.src = src[i];
return audio;
}
}
throw "Unsupported audio";
}
现在只需致电
var mySound = createAudio(["sounds/mySound.ogg", "sounds/mySound.mp3"]);