Files
rd_mes_uniapp/utils/audio.ts

91 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-12-18 14:11:48 +08:00
/**
* 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.01.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
}