91 lines
1.9 KiB
TypeScript
91 lines
1.9 KiB
TypeScript
|
|
/**
|
|||
|
|
* 这是Fnaudio方法的必选参数约束
|
|||
|
|
*/
|
|||
|
|
type FunTypeAudioRequired = {
|
|||
|
|
/**
|
|||
|
|
* 音频的数据链接,用于直接播放。
|
|||
|
|
*/
|
|||
|
|
readonly src : string,
|
|||
|
|
/**
|
|||
|
|
* 是否自动开始播放,默认 true
|
|||
|
|
*/
|
|||
|
|
readonly autoplay ?:boolean ,
|
|||
|
|
/**
|
|||
|
|
* 是否遵循系统静音开关,
|
|||
|
|
* 当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,
|
|||
|
|
* 默认值 true
|
|||
|
|
*/
|
|||
|
|
readonly obeyMuteSwitch ?:boolean,
|
|||
|
|
/**
|
|||
|
|
* 开始播放的位置(单位:s),默认 0
|
|||
|
|
*/
|
|||
|
|
readonly startTime ?: number,
|
|||
|
|
/**
|
|||
|
|
* 是否循环播放,默认 false
|
|||
|
|
*/
|
|||
|
|
readonly loop ?: boolean,
|
|||
|
|
/**
|
|||
|
|
* 音量。范围 0~1
|
|||
|
|
*/
|
|||
|
|
readonly volume ?: number,
|
|||
|
|
/**
|
|||
|
|
* 播放的倍率。可取值:0.5/0.8/1.0/1.25/1.5/2.0,默认值为1.0
|
|||
|
|
*/
|
|||
|
|
readonly playbackRate ?: 0.5|0.8|1.0|1.25|1.5|2.0
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 封装提示音的方法类
|
|||
|
|
*/
|
|||
|
|
class Audio {
|
|||
|
|
constructor(required : FunTypeAudioRequired ){
|
|||
|
|
if (required?.volume != undefined && (required.volume < 0 || required.volume > 1)) {
|
|||
|
|
throw new Error('提供的volume值不符合规范');
|
|||
|
|
}
|
|||
|
|
let innerAudioContext = uni.createInnerAudioContext();
|
|||
|
|
innerAudioContext = Object.assign(innerAudioContext,required)
|
|||
|
|
innerAudioContext.onPlay(() => {
|
|||
|
|
console.log('开始播放');
|
|||
|
|
});
|
|||
|
|
setTimeout(() => {
|
|||
|
|
innerAudioContext.stop()
|
|||
|
|
innerAudioContext.destroy()
|
|||
|
|
console.log(',销毁实例')
|
|||
|
|
}, 900);
|
|||
|
|
innerAudioContext.onError((res) => {
|
|||
|
|
console.error(res.errMsg);
|
|||
|
|
console.error(res.errCode);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 成功提示音
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
export function autioSuccess():void {
|
|||
|
|
let audio = null;
|
|||
|
|
audio = new Audio({
|
|||
|
|
src:'/static/audio/success.mp3',
|
|||
|
|
playbackRate:2,
|
|||
|
|
autoplay : true,
|
|||
|
|
volume : 1,
|
|||
|
|
})
|
|||
|
|
audio = null
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 失败提示音
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
export function autioError():void {
|
|||
|
|
let audio = null;
|
|||
|
|
audio = new Audio({
|
|||
|
|
src:'/static/audio/error.mp3',
|
|||
|
|
playbackRate:2,
|
|||
|
|
autoplay : true,
|
|||
|
|
volume : 1,
|
|||
|
|
})
|
|||
|
|
audio = null
|
|||
|
|
}
|