olympus-r
Version:
一个力求简单易用的前端开发框架 #### 开发语言 TypeScript #### 核心架构 MVC #### 模块间通讯和解耦 采用事件机制,利用一个全局唯一的事件派发器进行模块间通讯,解耦模块间依赖 #### 表现层结构 使用桥接模式拆分接口与实现,达到一套核心驱动多套表现层的目的(目前支持DOM、Egret、PixiJS三种表现层),同时支持表现层的未来可扩展性 #### TypeScript装饰器注入 框架提供TypeScript装饰器注入功能,便捷获取托管对象。例如:
135 lines (134 loc) • 3.75 kB
TypeScript
import IAudio, { AudioPlayParams } from "./IAudio";
/**
* @author Raykid
* @email initial_r@qq.com
* @create date 2017-10-30
* @modify date 2017-10-30
*
* 音频管理器,音频接口被强行分为两部分:Sound和Music。
* Sound:使用Audio标签播放,可以跨域播放但可能会被某些浏览器限制,必须在点击事件处理函数中播放
* Music:使用AudioContext播放,可以一定程度上越过点击事件检查,但无法跨域播放,适合播放背景音乐
*/
export default class AudioManager {
private static STORAGE_KEY_MUTE_SOUND;
private static STORAGE_KEY_MUTE_MUSIC;
constructor();
private _loadTupleDict;
private _playTupleDict;
private _soundImpl;
/**
* 注册Sound音频实现对象
*
* @param {IAudio} soundImpl Sound音频实现对象
* @memberof AudioManager
*/
registerSoundImpl(soundImpl: IAudio): void;
/**
* 获取或设置Sound类型音频静音属性
*
* @type {boolean}
* @memberof AudioManager
*/
muteSound: boolean;
/**
* 加载Sound音频
*
* @param {string} url 音频地址
* @memberof AudioManager
*/
loadSound(url: string): Promise<void>;
/**
* 播放Sound音频,如果没有加载则会先行加载
*
* @param {AudioPlayParams} params 音频播放参数
* @memberof AudioManager
*/
playSound(params: AudioPlayParams): Promise<void>;
/**
* 跳转Sound音频进度
*
* @param {string} url 音频URL
* @param {number} time 要跳转到的音频位置,毫秒值
* @memberof AudioManager
*/
seekSound(url: string, time: number): void;
/**
* 停止Sound音频
*
* @param {string} url 音频地址
* @memberof AudioManager
*/
stopSound(url: string): void;
/**
* 暂停Sound音频
*
* @param {string} url 音频地址
* @memberof AudioManager
*/
pauseSound(url: string): void;
/**
* 停止所有Sound音频
*
* @memberof AudioManager
*/
stopAllSound(): void;
private _musicImpl;
/**
* 注册Music音频实现对象
*
* @param {IAudio} musicImpl Music音频实现对象
* @memberof AudioManager
*/
registerMusicImpl(musicImpl: IAudio): void;
/**
* 获取或设置Music类型音频静音属性
*
* @type {boolean}
* @memberof AudioManager
*/
muteMusic: boolean;
/**
* 加载Music音频
*
* @param {string} url 音频地址
* @memberof AudioManager
*/
loadMusic(url: string): Promise<void>;
/**
* 播放Music音频,如果没有加载则会先行加载
*
* @param {AudioPlayParams} [params] 音频参数
* @memberof AudioManager
*/
playMusic(params: AudioPlayParams): Promise<void>;
/**
* 跳转Music音频进度
*
* @param {string} url 音频URL
* @param {number} time 要跳转到的音频位置,毫秒值
* @memberof AudioManager
*/
seekMusic(url: string, time: number): void;
/**
* 停止Music音频
*
* @param {string} url 音频地址
* @memberof AudioManager
*/
stopMusic(url: string): void;
/**
* 暂停Music音频
*
* @param {string} url 音频地址
* @memberof AudioManager
*/
pauseMusic(url: string): void;
/**
* 停止所有Music音频
*
* @memberof AudioManager
*/
stopAllMusics(): void;
}
/** 再额外导出一个单例 */
export declare const audioManager: AudioManager;