Phaser.js音频资源处理篇
2016-05-27 01:11
465 查看
概述
支持两种音频模式webAudio
缺点:无法对音频进行进一步的控制, 不能播放两个音轨
html5Audio
以节点表示音频流
Phaser.SoundManager对象
var game = Phaser.Game(); var soundManager = game.sound;
Phaser.Sound对象
var game = Phaser.Game(); var sound = game.add.audio(key, volume?, loop?); //volume 表示音量大小
音频资源的加载
加载单一资源var game = new Phaser.Game(); game.load.audio(key, urls, autoDecode?); // urls是字符串或者字符串的数组,这里字符串的数组是不同格式的优先使用
加载audiosprite资源
game.load.audiosprite(key, urls, jsonURL?, jsonData?, autoDecode?);
autosprite生成工具:https://github.com/tonistiigi/audiosprite
实例
function state(){ this.init = function(){ game.scale.pageAlignHorizontally = true; //水平居中 game.scale.pageAlignVertically = true; //垂直居中 } this.preload = function(){ game.load.audio('sound1', 'asset/audio/1.mp3'); game.load.audiosprite('audiosprite', [ 'asset/audio/myaudiosprite.ogg', 'asset/audio/myaudiosprite.m4a', 'asset/audio/myaudiosprite.mp3', 'asset/audio/myaudiosprite.ac3' ], 'asset/audio/myaudiosprite.json'); } this.create = function(){ var sound = game.add.audio('sound1'); var audiosprite = game.add.audioSprite('audiosprite'); } }
使用和管理
音频播放控制实例
function state(){ this.init = function(){ game.scale.pageAlignHorizontally = true; //水平居中 game.scale.pageAlignVertically = true; //垂直居中 } this.preload = function(){ game.load.audio('music', 'asset/sound/1.mp3'); game.load.image('btn_play', 'asset/sound/btn_play.png'); game.load.image('btn_pause', 'asset/sound/btn_pause.png'); game.load.image('btn_resume', 'asset/sound/btn_resume.png'); game.load.image('btn_stop', 'asset/sound/btn_stop.png'); } this.create = function(){ var sound = game.add.audio('music', 0.1); var btn_play = game.add.button(260, 20, 'btn_play', function(){ sound.play(); //播放 }); var btn_pause = game.add.button(260,145, 'btn_pause', function(){ sound.pause(); //暂停 }); var btn_resume = game.add.button(260, 280, 'btn_resume', function(){ sound.resume(); //恢复 }); var btn_stop = game.add.button(260, 415, 'btn_stop', function(){ sound.stop(); //停止 }); } }
声音的分段标注
//标注声音 //sound.addMarker(name, start, duration, volume?, loop?); //播放标注的声音 //sound.play(name); //移除标注 //sound.removeMarker(name); function state(){ this.init = function(){ game.scale.pageAlignHorizontally = true; //水平居中 game.scale.pageAlignVertically = true; //垂直居中 } this.preload = function(){ game.load.audio('music', 'asset/sound/1.mp3'); game.load.image('btn_play', 'asset/sound/btn_play.png'); } this.create = function(){ var sound = game.add.audio('music', 0.1); sound.addMarker('marker1', 5, 1); var btn_play = game.add.button(260, 20, 'btn_play', function(){ sound.play('marker1'); //播放 }); } }
声音的淡入淡出
function state(){ this.init = function(){ game.scale.pageAlignHorizontally = true; //水平居中 game.scale.pageAlignVertically = true; //垂直居中 } this.preload = function(){ game.load.audio('music', 'asset/sound/1.mp3'); game.load.image('btn_play', 'asset/sound/btn_play.png'); game.load.image('btn_pause', 'asset/sound/btn_pause.png'); } this.create = function(){ var sound = game.add.audio('music'); var btn_play = game.add.button(260, 20, 'btn_play', function(){ sound.fadeIn(3000); //淡入 }); var btn_pause = game.add.button(260,145, 'btn_pause', function(){ sound.fadeOut(3000); //淡出 }); } } ``` 5. 声音事件 ![这里写图片描述](http://img.blog.csdn.net/20160527010912535) ``` function state(){ this.init = function(){ game.scale.pageAlignHorizontally = true; //水平居中 game.scale.pageAlignVertically = true; //垂直居中 } this.preload = function(){ game.load.audio('music', 'asset/sound/1.mp3'); game.load.image('btn_play', 'asset/sound/btn_play.png'); game.load.image('btn_pause', 'asset/sound/btn_pause.png'); game.load.image('btn_resume', 'asset/sound/btn_resume.png'); game.load.image('btn_stop', 'asset/sound/btn_stop.png'); } this.create = function(){ var sound = game.add.audio('music'); sound.onPlay.add(function(){ alert('play'); }); sound.onPause.add(function(){ alert('pause'); }); sound.onResume.add(function(){ alert('resume'); }); sound.onStop.add(function(){ alert('stop'); }); var btn_play = game.add.button(260, 20, 'btn_play', function(){ sound.play(); //播放 }); var btn_pause = game.add.button(260,145, 'btn_pause', function(){ sound.pause(); //暂停 }); var btn_resume = game.add.button(260, 280, 'btn_resume', function(){ sound.resume(); //恢复 }); var btn_stop = game.add.button(260, 415, 'btn_stop', function(){ sound.stop(); //停止 }); } }
相关文章推荐
- Phaser.js事件系统及用户交互篇
- 理清JavaScript正则表达式--上篇
- Convention插件的使用(会涉及content目录,jsp必须放入这个下面才能映射成功基于注解的配置)
- javascript的变量声明和函数声明提升
- js通过location.search来获取页面传来的参数
- JS复制内容到剪切板
- ZeroClipboard.js复制内容到剪贴板(跨浏览器)
- JS 上传图片先预览
- Servlet/JSP-06 Session
- JSP系列:(3)JSP进阶-九大内置对象和四个域对象
- Ajax和Action之间Json数据的交互--包含List数据传输
- vs2013 javascript语言服务遇到错误且已关闭解决方案
- JSP中的相对路径和绝对路径
- 从零开始学_JavaScript_系列(21)——dojo(8)(手把手教你封装一个widget)
- jsp中文乱码
- js MDN 查看
- 客户端JavaScript
- JS数值类型、变量复制、函数传参
- web工程中js文件有报错怎么办?
- Javascript Lazyload图片延迟加载特效,降低HTPP连接次数,提高页面访问时间