import {
|
onMethod,
|
invokeMethod
|
} from '../../platform'
|
|
const callbacks = {
|
pause: null,
|
resume: null,
|
start: null,
|
stop: null,
|
error: null
|
}
|
|
class RecorderManager {
|
constructor () {
|
onMethod('onRecorderStateChange', res => {
|
const state = res.state
|
delete res.state
|
delete res.errMsg
|
if (typeof callbacks[state] === 'function') {
|
callbacks[state](res)
|
}
|
})
|
}
|
|
onError (callback) {
|
callbacks.error = callback
|
}
|
|
onFrameRecorded (callback) {
|
|
}
|
|
onInterruptionBegin (callback) {
|
|
}
|
|
onInterruptionEnd (callback) {
|
|
}
|
|
onPause (callback) {
|
callbacks.pause = callback
|
}
|
|
onResume (callback) {
|
callbacks.resume = callback
|
}
|
|
onStart (callback) {
|
callbacks.start = callback
|
}
|
|
onStop (callback) {
|
callbacks.stop = callback
|
}
|
|
pause () {
|
invokeMethod('operateRecorder', {
|
operationType: 'pause'
|
})
|
}
|
|
resume () {
|
invokeMethod('operateRecorder', {
|
operationType: 'resume'
|
})
|
}
|
|
start (options) {
|
invokeMethod('operateRecorder', Object.assign({}, options, {
|
operationType: 'start'
|
}))
|
}
|
|
stop () {
|
invokeMethod('operateRecorder', {
|
operationType: 'stop'
|
})
|
}
|
}
|
|
let recorderManager
|
|
export function getRecorderManager () {
|
return recorderManager || (recorderManager = new RecorderManager())
|
}
|