1 | import Taro from '../../index'
|
2 |
|
3 | declare module '../../index' {
|
4 | interface VideoDecoder {
|
5 | /** 获取下一帧的解码数据
|
6 | * @supported weapp
|
7 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.getFrameData.html
|
8 | */
|
9 | getFrameData(): Promise<VideoDecoder.getFrameData.Result>
|
10 | /** 取消监听录制事件
|
11 | * @supported weapp
|
12 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.off.html
|
13 | */
|
14 | off(
|
15 | /** 事件名 */
|
16 | eventName: keyof VideoDecoder.on.EventName,
|
17 | /** 事件触发时执行的回调函数 */
|
18 | callback: VideoDecoder.on.Callback
|
19 | ): void
|
20 | /** 注册监听录制事件的回调函数
|
21 | * @supported weapp
|
22 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.on.html
|
23 | */
|
24 | on(
|
25 | /** 事件名 */
|
26 | eventName: keyof VideoDecoder.on.EventName,
|
27 | /** 事件触发时执行的回调函数 */
|
28 | callback: VideoDecoder.on.Callback
|
29 | ): void
|
30 | /** 移除解码器
|
31 | * @supported weapp
|
32 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.remove.html
|
33 | */
|
34 | remove(): Promise<void>
|
35 | /** 跳到某个时间点解码
|
36 | * @supported weapp
|
37 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.seek.html
|
38 | */
|
39 | seek(
|
40 | /** 跳转的解码位置,单位 ms */
|
41 | position: number
|
42 | ): Promise<void>
|
43 | /** 开始解码
|
44 | * @supported weapp
|
45 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.start.html
|
46 | */
|
47 | start(option: VideoDecoder.start.Option): Promise<void>
|
48 | /** 停止解码
|
49 | * @supported weapp
|
50 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.stop.html
|
51 | */
|
52 | stop(): Promise<void>
|
53 | }
|
54 |
|
55 | namespace VideoDecoder {
|
56 | namespace getFrameData {
|
57 | interface Result {
|
58 | /** 帧数据宽度 */
|
59 | width: number
|
60 | /** 帧数据高度 */
|
61 | height: number
|
62 | /** 帧数据 */
|
63 | data: ArrayBuffer
|
64 | /** 帧原始 pts */
|
65 | pkPts: number
|
66 | /** 帧原始 dts */
|
67 | pkDts: number
|
68 | }
|
69 | }
|
70 | namespace on {
|
71 | /** eventName 的合法值 */
|
72 | interface EventName {
|
73 | /** 开始事件。返回 {width, height} */
|
74 | start
|
75 | /** 结束事件。 */
|
76 | stop
|
77 | /** seek 完成事件。 */
|
78 | seek
|
79 | /** 缓冲区变化事件。 */
|
80 | bufferchange
|
81 | /** 解码结束事件。 */
|
82 | ended
|
83 | }
|
84 | /** 事件触发时执行的回调函数 */
|
85 | type Callback = (res?: {
|
86 | width: number
|
87 | height: number
|
88 | }) => void
|
89 | }
|
90 | namespace start {
|
91 | interface Option {
|
92 | /** 需要解码的视频源文件。 */
|
93 | source: string
|
94 | /** 解码模式。0:按 pts 解码;1:以最快速度解码
|
95 | * @default 1
|
96 | */
|
97 | mode?: number
|
98 | /** 是否不需要音频轨道
|
99 | * @default false
|
100 | */
|
101 | abortAudio?: boolean
|
102 | /** 是否不需要视频轨道
|
103 | * @default false
|
104 | */
|
105 | abortVideo?: boolean
|
106 | }
|
107 | }
|
108 | }
|
109 |
|
110 | interface TaroStatic {
|
111 | /** 创建视频解码器,可逐帧获取解码后的数据
|
112 | * @supported weapp
|
113 | * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/wx.createVideoDecoder.html
|
114 | */
|
115 | createVideoDecoder(): VideoDecoder
|
116 | }
|
117 | }
|