1 | import Taro from '../../index'
|
2 |
|
3 | declare module '../../index' {
|
4 | interface MediaRecorder {
|
5 | /** 销毁录制器
|
6 | * @supported weapp
|
7 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.destroy.html
|
8 | */
|
9 | destroy(): Promise<void>
|
10 | /** 取消监听录制事件
|
11 | * @supported weapp
|
12 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.off.html
|
13 | */
|
14 | off(
|
15 | /** 事件名 */
|
16 | eventName: keyof MediaRecorder.on.EventName,
|
17 | /** 事件触发时执行的回调函数 */
|
18 | callback: MediaRecorder.on.Callback
|
19 | ): Promise<void>
|
20 | /** 注册监听录制事件的回调函数
|
21 | * @supported weapp
|
22 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.on.html
|
23 | */
|
24 | on(
|
25 | /** 事件名 */
|
26 | eventName: keyof MediaRecorder.on.EventName,
|
27 | /** 事件触发时执行的回调函数 */
|
28 | callback: MediaRecorder.on.Callback
|
29 | ): Promise<void>
|
30 | /** 暂停录制
|
31 | * @supported weapp
|
32 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.pause.html
|
33 | */
|
34 | pause(): Promise<void>
|
35 | /** 请求下一帧录制,在 callback 里完成一帧渲染后开始录制当前帧
|
36 | * @supported weapp
|
37 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.requestFrame.html
|
38 | */
|
39 | requestFrame(callback: MediaRecorder.requestFrame.Callback): Promise<void>
|
40 | /** 恢复录制
|
41 | * @supported weapp
|
42 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.resume.html
|
43 | */
|
44 | resume(): Promise<void>
|
45 | /** 开始录制
|
46 | * @supported weapp
|
47 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.start.html
|
48 | */
|
49 | start(): Promise<void>
|
50 | /** 结束录制
|
51 | * @supported weapp
|
52 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/MediaRecorder.stop.html
|
53 | */
|
54 | stop(): Promise<void>
|
55 | }
|
56 |
|
57 | namespace MediaRecorder {
|
58 | namespace on {
|
59 | /** eventName 的合法值 */
|
60 | interface EventName {
|
61 | /** 录制开始事件。 */
|
62 | start
|
63 | /** 录制结束事件。返回 {tempFilePath, duration, fileSize} */
|
64 | stop
|
65 | /** 录制暂停事件。 */
|
66 | pause
|
67 | /** 录制继续事件。 */
|
68 | resume
|
69 | /** 录制时间更新事件。 */
|
70 | timeupdate
|
71 | }
|
72 | /** 事件触发时执行的回调函数 */
|
73 | type Callback = (res?: {
|
74 | tempFilePath: string
|
75 | duration: number
|
76 | fileSize: number
|
77 | }) => void
|
78 | }
|
79 | namespace requestFrame {
|
80 | /** 事件触发时执行的回调函数 */
|
81 | type Callback = () => void
|
82 | }
|
83 | }
|
84 |
|
85 | interface TaroStatic {
|
86 | /** 创建 WebGL 画面录制器,可逐帧录制在 WebGL 上渲染的画面并导出视频文件
|
87 | * @supported weapp
|
88 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/media-recorder/wx.createMediaRecorder.html
|
89 | */
|
90 | createMediaRecorder(): MediaRecorder
|
91 | }
|
92 | }
|