113 lines
3.1 KiB
JavaScript
113 lines
3.1 KiB
JavaScript
import moduleHelper from './module-helper';
|
|
import { formatJsonStr, getListObject, uid } from './utils';
|
|
const gameRecorderList = {};
|
|
let wxGameRecorderList;
|
|
const getObject = getListObject(gameRecorderList, 'gameRecorder');
|
|
export default {
|
|
WX_GetGameRecorder() {
|
|
const id = uid();
|
|
gameRecorderList[id] = wx.getGameRecorder();
|
|
return id;
|
|
},
|
|
WX_GameRecorderOff(id, eventType) {
|
|
const obj = getObject(id);
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
if (!obj || typeof wxGameRecorderList === 'undefined' || typeof wxGameRecorderList[eventType] === 'undefined') {
|
|
return;
|
|
}
|
|
// eslint-disable-next-line no-restricted-syntax
|
|
for (const key in Object.keys(wxGameRecorderList[eventType])) {
|
|
const callback = wxGameRecorderList[eventType][key];
|
|
if (callback) {
|
|
obj.off(eventType, callback);
|
|
}
|
|
}
|
|
wxGameRecorderList[eventType] = {};
|
|
},
|
|
WX_GameRecorderOn(id, eventType) {
|
|
const obj = getObject(id);
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
if (!wxGameRecorderList) {
|
|
wxGameRecorderList = {
|
|
start: {},
|
|
stop: {},
|
|
pause: {},
|
|
resume: {},
|
|
abort: {},
|
|
timeUpdate: {},
|
|
error: {},
|
|
};
|
|
}
|
|
const callbackId = uid();
|
|
const callback = (res) => {
|
|
let result = '';
|
|
if (res) {
|
|
result = JSON.stringify(res);
|
|
}
|
|
const resStr = JSON.stringify({
|
|
id,
|
|
res: JSON.stringify({
|
|
eventType,
|
|
result,
|
|
}),
|
|
});
|
|
moduleHelper.send('_OnGameRecorderCallback', resStr);
|
|
};
|
|
if (wxGameRecorderList[eventType]) {
|
|
wxGameRecorderList[eventType][callbackId] = callback;
|
|
obj.on(eventType, callback);
|
|
return callbackId;
|
|
}
|
|
return '';
|
|
},
|
|
WX_GameRecorderStart(id, option) {
|
|
const obj = getObject(id);
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
const data = formatJsonStr(option);
|
|
obj.start(data);
|
|
},
|
|
WX_GameRecorderAbort(id) {
|
|
const obj = getObject(id);
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
obj.abort();
|
|
},
|
|
WX_GameRecorderPause(id) {
|
|
const obj = getObject(id);
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
obj.pause();
|
|
},
|
|
WX_GameRecorderResume(id) {
|
|
const obj = getObject(id);
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
obj.resume();
|
|
},
|
|
WX_GameRecorderStop(id) {
|
|
const obj = getObject(id);
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
obj.stop();
|
|
},
|
|
WX_OperateGameRecorderVideo(option) {
|
|
if (typeof wx.operateGameRecorderVideo !== 'undefined') {
|
|
const data = formatJsonStr(option);
|
|
data.fail = (res) => {
|
|
console.error(res);
|
|
};
|
|
wx.operateGameRecorderVideo(data);
|
|
}
|
|
},
|
|
};
|