协慌网

登录 贡献 社区

如何播放音频?

我正在用 HTML5 和 JavaScript 制作游戏。

如何通过 JavaScript 播放游戏音频?

答案

如果您不想弄乱 HTML 元素:

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

function play() {
  var audio = new Audio('https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3');
  audio.play();
}
<button onclick="play()">Play Audio</button>

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


如果需要更多功能,我使用了howler.js库,发现它简单实用。

<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.1.1/howler.min.js"></script>
<script>
    var sound = new Howl({
      src: ['https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3'],
      volume: 0.5,
      onend: function () {
        alert('Finished!');
      }
    });
    sound.play()
</script>

很简单,只需获取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,该 API 允许在任何现代浏览器(包括 IE 6+)中播放声音。如果浏览器不支持 HTML5,则它将从 Flash 获得帮助。如果您要严格使用 HTML5 且不使用 Flash,则可以进行设置, preferFlash=false

它在 iPad,iPhone(iOS4)和其他支持 HTML5 的设备 + 浏览器上支持 100%无 Flash 音频

使用非常简单:

<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/