'f'
mh-two-thousand-and-two
2024-04-12 26f2711ef9461961fb953e2b497bd314ef95e345
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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())
}