用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();