UNPKG

3.58 kBTypeScriptView Raw
1import Taro from '../../index'
2
3declare 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}