File: libs/Sound.js
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
/**
* @module annie
*/
var annie;
(function (annie) {
/**
* 声音类
* @class annie.Sound
* @extends annie.Media
* @public
* @since 1.0.0
*/
var Sound = (function (_super) {
__extends(Sound, _super);
/**
* 构造函数
* @method Sound
* @since 1.0.0
* @public
* @param src
* @example
* var soundPlayer = new annie.Sound('http://test.annie2x.com/biglong/apiDemo/annieBitmap/resource/music.mp3');
* soundPlayer.play();//播放音乐
* //soundPlayer.pause();//暂停音乐
* //soundPlayer.stop();//停止音乐
*/
function Sound(src) {
var _this = _super.call(this, src, "Audio") || this;
var s = _this;
s._instanceType = "annie.Sound";
annie.Sound._soundList.push(s);
s.volume = Sound._volume;
return _this;
}
/**
* 从静态声音池中删除声音对象,如果一个声音再也不用了,建议先执行这个方法,再销毁
* @method destory
* @public
* @since 1.1.1
*/
Sound.prototype.destory = function () {
var len = annie.Sound._soundList.length;
for (var i = len - 1; i >= 0; i--) {
if (!annie.Sound._soundList[i] || annie.Sound._soundList[i] == this) {
annie.Sound._soundList.splice(i, 1);
}
}
};
/**
* 停止当前所有正在播放的声音,当然一定要是annie.Sound类的声音
* @method stopAllSounds
* @since 1.1.1
* @static
* @public
*/
Sound.stopAllSounds = function () {
var len = annie.Sound._soundList.length;
for (var i = len - 1; i >= 0; i--) {
if (annie.Sound._soundList[i]) {
annie.Sound._soundList[i].stop();
}
else {
annie.Sound._soundList.splice(i, 1);
}
}
};
/**
* 设置当前所有正在播放的声音,当然一定要是annie.Sound类的声音
* @method setAllSoundsVolume
* @since 1.1.1
* @static
* @public
* @param {number} volume 音量大小,从0-1 在ios里 volume只能是0 或者1,其他无效
*/
Sound.setAllSoundsVolume = function (volume) {
var len = annie.Sound._soundList.length;
for (var i = len - 1; i >= 0; i--) {
if (annie.Sound._soundList[i]) {
annie.Sound._soundList[i].volume = volume;
}
else {
annie.Sound._soundList.splice(i, 1);
}
}
Sound._volume = volume;
};
//声音对象池
Sound._soundList = [];
Sound._volume = 1;
return Sound;
}(annie.Media));
annie.Sound = Sound;
})(annie || (annie = {}));