UNPKG

olympus-r

Version:

一个力求简单易用的前端开发框架 #### 开发语言 TypeScript #### 核心架构 MVC #### 模块间通讯和解耦 采用事件机制,利用一个全局唯一的事件派发器进行模块间通讯,解耦模块间依赖 #### 表现层结构 使用桥接模式拆分接口与实现,达到一套核心驱动多套表现层的目的(目前支持DOM、Egret、PixiJS三种表现层),同时支持表现层的未来可扩展性 #### TypeScript装饰器注入 框架提供TypeScript装饰器注入功能,便捷获取托管对象。例如:

135 lines (134 loc) 3.75 kB
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;