====== サウンドを再生する ======
サウンドを再生するには、まずアセットに登録して、それからSoundManagerを使用して再生します。(参考:[[https://qiita.com/alkn203/items/4650ba72c6e24b9c0433|[phina.js-Tips-36] 音を再生してみる - Qiita]]、[[https://qiita.com/alkn203/items/92d9c0ae53d792ad4f4d|[phina.js-Tips-37] 音の再生を停止してみる - Qiita]]、[[https://qiita.com/alkn203/items/613d57bacbb8664905f0|[phina.js-Tips-38] 音の再生を中断・再開してみる - Qiita]])
const ASSETS = {
sound: {
'bgm1': './sound/bgm1.mp3',
'se1': './sound/se1.mp3',
},
};
phina.main(function() {
// アプリケーションを生成する。
var app = GameApp({
width: SCREEN_WIDTH,
height: SCREEN_HEIGHT,
startLabel: 'main',
assets: ASSETS,
});
// 省略
// 効果音を再生する。
SoundManager.play('se1');
// BGMを再生する。
SoundManager.playMusic('bgm1');
// BGMを停止する。
SoundManager.stopMusic();
// BGMを一時停止する。
SoundManager.pauseMusic();
// BGMを再開する。
SoundManager.resumeMusic();
ただし、iOSの場合、ユーザーが操作をするまで音声を再生することができないため、最初のタッチイベントの際にダミーで音声を流すことで音声を再生できるようにします。(参考:[[https://github.com/phinajs/phina.js/issues/197|iPhone, iPad で音が再生されない場合の対処 · Issue #197 · phinajs/phina.js]])
phina.main(function() {
// 省略
app.domElement.addEventListener('touchend', function dummy() {
var s = phina.asset.Sound();
s.loadFromBuffer();
s.play().stop();
app.domElement.removeEventListener('touchend', dummy);
});
app.run();
});