52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
import { WEBAudio, audios } from './store';
|
|
import { resumeWebAudio, mkCacheDir } from './utils';
|
|
|
|
mkCacheDir();
|
|
export default {
|
|
WXGetAudioCount() {
|
|
return {
|
|
innerAudio: Object.keys(audios).length,
|
|
webAudio: WEBAudio.bufferSourceNodeLength,
|
|
buffer: WEBAudio.audioBufferLength,
|
|
};
|
|
},
|
|
};
|
|
|
|
const HandleInterruption = {
|
|
init() {
|
|
let INTERRUPT_LIST = {};
|
|
wx.onHide(() => {
|
|
Object.keys(audios).forEach((key) => {
|
|
if (!audios[key].paused !== false) {
|
|
INTERRUPT_LIST[key] = true;
|
|
}
|
|
});
|
|
});
|
|
wx.onShow(() => {
|
|
Object.keys(audios).forEach((key) => {
|
|
if (audios[key].paused !== false && INTERRUPT_LIST[key]) {
|
|
audios[key].play();
|
|
}
|
|
});
|
|
INTERRUPT_LIST = {};
|
|
});
|
|
wx.onAudioInterruptionBegin(() => {
|
|
Object.keys(audios).forEach((key) => {
|
|
if (!audios[key].paused !== false) {
|
|
INTERRUPT_LIST[key] = true;
|
|
}
|
|
});
|
|
});
|
|
wx.onAudioInterruptionEnd(() => {
|
|
Object.keys(audios).forEach((key) => {
|
|
if (audios[key].paused !== false && INTERRUPT_LIST[key]) {
|
|
audios[key].play();
|
|
}
|
|
});
|
|
INTERRUPT_LIST = {};
|
|
resumeWebAudio();
|
|
});
|
|
},
|
|
};
|
|
HandleInterruption.init();
|