用Javascript播放audio?

我正在用HTML5和Javascript做一个游戏。

我怎么能通过Javascript播放游戏audio?

如果你不想弄乱HTML元素:

 var audio = new Audio('audio_file.mp3'); audio.play(); 

这使用HTMLAudioElement接口,该接口以与<audio>元素相同的方式播放audio。

如果你需要更多的function,我使用了howler.js库,发现它简单而有用。

这很简单,只需要获取audio元素并调用play()方法即可:

 document.getElementById('yourAudioTag').play(); 

看看这个例子: http : //www.storiesinflight.com/html5/audio.html

这个站点揭示了一些你可以做的其他很酷的事情,比如load()pause()audio元素的一些其他属性。

http://www.schillmania.com/projects/soundmanager2/

SoundManager 2提供了一个易于使用的API,允许在任何现代浏览器(包括IE 6+)中播放声音。 如果浏览器不支持HTML5,那么它从Flash获得帮助。 如果你想严格的HTML5和没有闪光,有一个设置, preferFlash=false

它支持iPad,iPhone(iOS4)和其他支持HTML5的设备+浏览器的100%免Flashaudio

使用如下简单:

 <script src="soundmanager2.js"></script> <script> // where to find flash SWFs, if needed... soundManager.url = '/path/to/swf-files/'; soundManager.onready(function() { soundManager.createSound({ id: 'mySound', url: '/path/to/an.mp3' }); // ...and play it soundManager.play('mySound'); }); </script> 

下面是它的一个演示: http : //www.schillmania.com/projects/soundmanager2/demo/christmas-lights/

这是一个相当古老的问题,但我想添加一些有用的信息。 主题发起人已经提到他在"making a game" 。 因此,对于需要audio进行游戏开发的每个人来说,有一个比<audio>标签或HTMLAudioElement更好的select。 我认为你应该考虑使用Web Audio API :

虽然networking上的audio不再需要插件,但audio标签为实施复杂的游戏和交互式应用带来了很大的局限性。 Web Audio API是用于在Web应用程序中处理和合成audio的高级JavaScript API。 该API的目标是包含现代游戏audio引擎中的function以及现代桌面audio制作应用程序中的一些混音,处理和过滤任务。

容易与JQuery

//设置没有预加载的audio标签

 <audio class="my_audio" controls preload="none"> <source src="audio/my_song.mp3" type="audio/mpeg"> <source src="audio/my_song.ogg" type="audio/ogg"> </audio> 

//添加jquery来加载

 $(".my_audio").trigger('load'); 

//编写播放和停止的方法

 function play_audio(task) { if(task == 'play'){ $(".my_audio").trigger('play'); } if(task == 'stop'){ $(".my_audio").trigger('pause'); $(".my_audio").prop("currentTime",0); } } 

//决定如何控制audio

 <button onclick="play_audio('play')">PLAY</button> <button onclick="play_audio('stop')">STOP</button> 

添加一个隐藏的audio并播放它。

 function playSound(url){ var audio = document.createElement('audio'); audio.style.display = "none"; audio.src = url; audio.autoplay = true; audio.onended = function(){ audio.remove() //Remove when played. }; document.body.appendChild(audio); } 
 new Audio('./file.mp3').play() 

我用这种方法来播放声音…

 var audioElement; if(!audioElement) { audioElement = document.createElement('audio'); audioElement.innerHTML = '<source src="' + '/audio/sound.mp3'+ '" type="audio/mpeg" />' } audioElement.play(); 

如果您想在打开页面时播放audio,请执行此操作。

 <script> function playMusic(){ music.play(); } </script> <html> <audio id="music" loop src="sounds/music.wav" autoplay> </audio> </html> 

非常简单的解决scheme:如果你有一个如下所示的HTML标签:

 <audio id="myAudio" src="some_audio.mp3"></a> 

只需使用JavaScript来播放它就像这样:

 document.getElementById('myAudio').play();