我正在用HTML5和Javascript制作游戏.
我怎么能通过Javascript播放游戏音频?
我点击导航中的每个链接播放一个小音频剪辑
HTML代码:
<audio tabindex="0" id="beep-one" controls preload="auto" >
<source src="audio/Output 1-2.mp3">
<source src="audio/Output 1-2.ogg">
</audio>
Run Code Online (Sandbox Code Playgroud)
JS代码:
$('#links a').click(function(e) {
e.preventDefault();
var beepOne = $("#beep-one")[0];
beepOne.play();
});
Run Code Online (Sandbox Code Playgroud)
它到目前为止工作正常.
问题是当声音片段已经运行并且我点击任何链接时没有任何反应.
我试图通过点击链接停止已播放的声音,但在HTML5的Audio API中没有直接的事件
我尝试了下面的代码,但它没有用
$.each($('audio'), function () {
$(this).stop();
});
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我最终想要做的是从用户的麦克风录制,并在完成后将文件上传到服务器.到目前为止,我已设法使用以下代码为元素创建流:
var audio = document.getElementById("audio_preview");
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
navigator.getUserMedia({video: false, audio: true}, function(stream) {
audio.src = window.URL.createObjectURL(stream);
}, onRecordFail);
var onRecordFail = function (e) {
console.log(e);
}
Run Code Online (Sandbox Code Playgroud)
我如何从那里,到录制到文件?
当某个事件发生时,我希望我的网站向用户播放简短的通知声音.
声音应该不自动启动(瞬间)当网站被打开.相反,它应该通过JavaScript按需播放(当某个事件发生时).
重要的是,这也适用于旧浏览器(IE6等).
所以,基本上有两个问题:
<embed>vs. <object>vs. vs. vs. <audio>)有没有特殊原因导致Firefox不支持<audio>元素中的MP3文件播放,只有Ogg格式?
这是许可问题吗?
是否有任何可能的未来实施计划?
是否有可能开发一个插件来支持<audio>元素中的MP3播放?
我最近一直在玩HTML5音频,虽然我可以让它播放声音但它只播放一次.无论我尝试什么(设置属性,事件处理程序等),我似乎无法让它循环.
这是我正在使用的基本代码:
//myAudio is declared at a global scope, so it doesn't get garbage collected.
myAudio = new Audio('someSound.ogg');
myAudio.loop = true;
myAudio.play();
Run Code Online (Sandbox Code Playgroud)
我正在使用Chrome(6.0.466.0 dev)和Firefox(4 beta 1)进行测试,两者似乎都乐于忽略我的循环请求.有任何想法吗?
更新:现在所有主流浏览器都支持循环属性.
如何在HTML5音频元素中跳转到某些时间偏移?
他们说你可以简单地设置他们的currentTime财产(强调我的):
currentTime获取时,该属性必须返回当前播放位置,以秒为单位表示.在设置时,如果媒体元素具有当前媒体控制器,则它必须抛出INVALID_STATE_ERR异常; 否则,用户代理必须寻找新值(这可能引发异常).
唉,它似乎不起作用(我需要在Chrome中).
有类似的问题,但没有答案.
我一直在尝试使用Node.js中的二进制流,令我惊讶的是,实际上有一个工作演示,即使用节点无线电流获取Shoutcast流并使用分块编码将其推送到HTML5元素.但它只适用于Safari!
这是我的服务器代码:
var radio = require("radio-stream");
var http = require('http');
var url = "http://67.205.85.183:7714";
var stream = radio.createReadStream(url);
var clients = [];
stream.on("connect", function() {
console.error("Radio Stream connected!");
console.error(stream.headers);
});
// When a chunk of data is received on the stream, push it to all connected clients
stream.on("data", function (chunk) {
if (clients.length > 0){
for (client in clients){
clients[client].write(chunk);
};
}
});
// When a 'metadata' event happens, usually a new song is starting.
stream.on("metadata", function(title) {
console.error(title);
}); …Run Code Online (Sandbox Code Playgroud) 音频自动播放工作在Mozilla,微软边缘和旧的谷歌浏览器,但不是新的谷歌铬.他们阻止了自动播放.有没有办法让它在谷歌浏览器中自动播放?
我正在制作一个程序,将文本转换为莫尔斯电码音频.
说我输入sos.我的程序将把它变成数组[1, 1, 1, 0, 2, 2, 2, 0, 1, 1, 1].哪里s = dot dot dot(或1,1,1),和o = dash dash dash(或2,2,2).这部分很容易.
接下来,我有两个声音文件:
var dot = new Audio('dot.mp3');
var dash = new Audio('dash.mp3');
Run Code Online (Sandbox Code Playgroud)
我的目标是有一个功能,dot.mp3当它看到a时1,dash.mp3当它看到a时会播放,并在看到a 2时暂停0.
以下类型/有时/有时可行,但我认为它存在根本缺陷,我不知道如何修复它.
function playMorseArr(morseArr) {
for (let i = 0; i < morseArr.length; i++) {
setTimeout(function() {
if (morseArr[i] === 1) {
dot.play();
}
if (morseArr[i] === …Run Code Online (Sandbox Code Playgroud) html5-audio ×10
html5 ×6
javascript ×6
audio ×1
firefox ×1
html ×1
mp3 ×1
node.js ×1
playback ×1
shoutcast ×1
streaming ×1
synchronous ×1