1 | import { ComponentType } from 'react'
|
2 | import { StandardProps, CommonEventFunction, NetStatus } from './common'
|
3 | /** 实时音视频录制。
|
4 | * 需要用户授权 scope.camera、scope.record
|
5 | * 暂只针对国内主体如下类目的小程序开放,需要先通过类目审核,再在小程序管理后台,“设置”-“接口设置”中自助开通该组件权限。
|
6 | */
|
7 | interface LivePusherProps extends StandardProps {
|
8 | /** 推流地址。目前仅支持 rtmp 格式
|
9 | * @supported weapp, qq
|
10 | */
|
11 | url?: string
|
12 | /** SD(标清), HD(高清), FHD(超清), RTC(实时通话)
|
13 | * @default "RTC"
|
14 | * @supported weapp, qq
|
15 | */
|
16 | mode?: 'SD' | 'HD' | 'FHD' | 'RTC'
|
17 | /** 自动推流
|
18 | * @default false
|
19 | * @supported weapp, qq
|
20 | */
|
21 | autopush?: boolean
|
22 | /** 自定义渲染,允许开发者自行处理所采集的视频帧
|
23 | * @default false
|
24 | * @supported weapp
|
25 | */
|
26 | enableVideoCustomRender?: boolean
|
27 | /** 是否静音。即将废弃,可用 enable-mic 替代
|
28 | * @default false
|
29 | * @deprecated
|
30 | * @supported weapp, qq
|
31 | */
|
32 | muted?: boolean
|
33 | /** 开启摄像头
|
34 | * @default true
|
35 | * @supported weapp, qq
|
36 | */
|
37 | enableCamera?: boolean
|
38 | /** 自动聚集
|
39 | * @default true
|
40 | * @supported weapp, qq
|
41 | */
|
42 | autoFocus?: boolean
|
43 | /** 画面方向
|
44 | * @default "vertical"
|
45 | * @supported weapp, qq
|
46 | */
|
47 | orientation?: keyof LivePusherProps.Orientation
|
48 | /** 美颜,取值范围 0-9 ,0 表示关闭
|
49 | * @default 0
|
50 | * @supported weapp, qq
|
51 | */
|
52 | beauty?: number
|
53 | /** 美白,取值范围 0-9 ,0 表示关闭
|
54 | * @default 0
|
55 | * @supported weapp, qq
|
56 | */
|
57 | whiteness?: number
|
58 | /** 宽高比,可选值有 3:4, 9:16
|
59 | * @default "9:16"
|
60 | * @supported weapp, qq
|
61 | */
|
62 | aspect?: '9:16' | '3:4'
|
63 | /** 最小码率
|
64 | * @default 200
|
65 | * @supported weapp, qq
|
66 | */
|
67 | minBitrate?: number
|
68 | /** 最大码率
|
69 | * @default 1000
|
70 | * @supported weapp, qq
|
71 | */
|
72 | maxBitrate?: number
|
73 | /** 高音质(48KHz)或低音质(16KHz),值为high, low
|
74 | * @default "high"
|
75 | * @supported weapp, qq
|
76 | */
|
77 | audioQuality?: string
|
78 | /** 进入后台时推流的等待画面
|
79 | * @supported weapp, qq
|
80 | */
|
81 | waitingImage?: string
|
82 | /** 等待画面资源的MD5值
|
83 | * @supported weapp, qq
|
84 | */
|
85 | waitingImageHash?: string
|
86 | /** 调整焦距
|
87 | * @default false
|
88 | * @supported weapp, qq
|
89 | */
|
90 | zoom?: boolean
|
91 | /** 前置或后置,值为front, back
|
92 | * @default "front"
|
93 | * @supported weapp, qq
|
94 | */
|
95 | devicePosition?: string
|
96 | /** 进入后台时是否静音
|
97 | * @default false
|
98 | * @supported weapp, qq
|
99 | */
|
100 | backgroundMute?: boolean
|
101 | /** 设置推流画面是否镜像,产生的效果在 LivePlayer 反应到
|
102 | * @default false
|
103 | * @supported weapp, qq
|
104 | */
|
105 | mirror?: boolean
|
106 | /** 设置推流画面是否镜像,产生的效果在 LivePlayer 反应到
|
107 | *
|
108 | * **Note:** 同 mirror 属性,后续 mirror 将废弃
|
109 | * @default false
|
110 | * @supported weapp
|
111 | */
|
112 | remoteMirror?: boolean
|
113 | /** 控制本地预览画面是否镜像
|
114 | * @default "auto"
|
115 | * @supported weapp
|
116 | */
|
117 | localMirror?: keyof LivePusherProps.LocalMirror
|
118 | /** 音频混响类型
|
119 | * @default 0
|
120 | * @supported weapp, qq
|
121 | */
|
122 | audioReverbType?: keyof LivePusherProps.AudioReverbType
|
123 | /** 开启或关闭麦克风
|
124 | * @default true
|
125 | * @supported weapp
|
126 | */
|
127 | enableMic?: boolean
|
128 | /** 是否开启音频自动增益
|
129 | * @default false
|
130 | * @supported weapp
|
131 | */
|
132 | enableAgc?: boolean
|
133 | /** 是否开启音频噪声抑制
|
134 | * @default false
|
135 | * @supported weapp
|
136 | */
|
137 | enableAns?: boolean
|
138 | /** 音量类型
|
139 | * @default "voicecall"
|
140 | * @supported weapp
|
141 | */
|
142 | audioVolumeType?: keyof LivePusherProps.AudioVolumeType
|
143 | /** 上推的视频流的分辨率宽度
|
144 | * @default 360
|
145 | * @supported weapp
|
146 | */
|
147 | videoWidth?: number
|
148 | /** 上推的视频流的分辨率高度
|
149 | * @default 640
|
150 | * @supported weapp
|
151 | */
|
152 | videoHeight?: number
|
153 | /** 设置美颜类型
|
154 | * @default smooth
|
155 | * @supported weapp
|
156 | */
|
157 | beautyStyle?: keyof LivePusherProps.BeautyStyleType
|
158 | /** 设置色彩滤镜
|
159 | * @default standard
|
160 | * @supported weapp
|
161 | */
|
162 | filter?: keyof LivePusherProps.FilterType
|
163 | /** 设置小窗模式: push, pop,空字符串或通过数组形式设置多种模式(如: ["push", "pop"])
|
164 | * @supported weapp
|
165 | */
|
166 | pictureInPictureMode?: string | any[]
|
167 | /** 是否启动自定义特效,设定后不能更改
|
168 | * @supported weapp
|
169 | * @default false
|
170 | */
|
171 | customEffect?: boolean
|
172 | /** 自定义特效美白效果,取值 0~1。需要开启 custom-effect
|
173 | * @supported weapp
|
174 | * @default 0
|
175 | */
|
176 | skinWhiteness?: number
|
177 | /** 自定义特效磨皮效果,取值 0~1。需要开启 custom-effect
|
178 | * @supported weapp
|
179 | * @default 0
|
180 | */
|
181 | skinSmoothness?: number
|
182 | /** 自定义特效瘦脸效果,取值 0~1。需要开启 custom-effect
|
183 | * @supported weapp
|
184 | * @default 0
|
185 | */
|
186 | faceThinness?: number
|
187 | /** 自定义特效大眼效果,取值 0~1。需要开启 custom-effect
|
188 | * @supported weapp
|
189 | * @default 0
|
190 | */
|
191 | eyeBigness?: number
|
192 | /** 0:关闭变声;1:熊孩子;2:萝莉;3:大叔;4:重金属;6:外国人;7:困兽;8:死肥仔;9:强电流;10:重机械;11:空灵
|
193 | * @supported weapp
|
194 | * @default 0
|
195 | */
|
196 | voiceChangerType?: number
|
197 | /** 帧率,有效值为 1~30
|
198 | * @supported weapp
|
199 | * @default 15
|
200 | */
|
201 | fps?: number
|
202 | /** 状态变化事件,detail = {code}
|
203 | * @supported weapp, qq
|
204 | */
|
205 | onStateChange?: CommonEventFunction<LivePusherProps.onStateChangeEventDetail>
|
206 | /** 渲染错误事件,detail = {errMsg, errCode}
|
207 | * @supported weapp, qq
|
208 | */
|
209 | onError?: CommonEventFunction<LivePusherProps.onErrorEventDetail>
|
210 | /** 背景音进度变化时触发,detail = {progress, duration}
|
211 | * @supported weapp, qq
|
212 | */
|
213 | onBgmProgress?: CommonEventFunction<LivePusherProps.onBgmProgressEventDetail>
|
214 | /** 背景音播放完成时触发
|
215 | * @supported weapp, qq
|
216 | */
|
217 | onBgmComplete?: CommonEventFunction
|
218 | /** 返回麦克风采集的音量大小
|
219 | * @supported weapp
|
220 | */
|
221 | onAudioVolumeNotify?: CommonEventFunction
|
222 | /** 网络状态通知,detail = {info}
|
223 | * @supported weapp, qq
|
224 | */
|
225 | onNetStatus?: CommonEventFunction
|
226 | /** 进入小窗
|
227 | * @supported weapp
|
228 | */
|
229 | onEnterPictureInPicture?: string
|
230 | /** 退出小窗
|
231 | * @supported weapp
|
232 | */
|
233 | onLeavePictureInPicture?: string
|
234 | /** 背景音开始播放时触发
|
235 | * @supported weapp, qq
|
236 | */
|
237 | onBgmStart?: CommonEventFunction
|
238 | }
|
239 | declare namespace LivePusherProps {
|
240 | /** orientation 的合法值 */
|
241 | interface Orientation {
|
242 | /** 竖直 */
|
243 | vertical
|
244 | /** 水平 */
|
245 | horizontal
|
246 | }
|
247 | /** localMirror 的合法值 */
|
248 | interface LocalMirror {
|
249 | /** 前置摄像头镜像,后置摄像头不镜像 */
|
250 | auto
|
251 | /** 前后置摄像头均镜像 */
|
252 | enable
|
253 | /** 前后置摄像头均不镜像 */
|
254 | disable
|
255 | }
|
256 | /** audioReverbType 的合法值 */
|
257 | interface AudioReverbType {
|
258 | /** 关闭 */
|
259 | 0
|
260 | /** KTV */
|
261 | 1
|
262 | /** 小房间 */
|
263 | 2
|
264 | /** 大会堂 */
|
265 | 3
|
266 | /** 低沉 */
|
267 | 4
|
268 | /** 洪亮 */
|
269 | 5
|
270 | /** 金属声 */
|
271 | 6
|
272 | /** 磁性 */
|
273 | 7
|
274 | }
|
275 | /** audioVolumeType 的合法值 */
|
276 | interface AudioVolumeType {
|
277 | /** 自动 */
|
278 | auto
|
279 | /** 媒体音量 */
|
280 | media
|
281 | /** 通话音量 */
|
282 | voicecall
|
283 | }
|
284 | /** beautyStyleType 的合法值 */
|
285 | interface BeautyStyleType {
|
286 | /** 光滑美颜 */
|
287 | smooth
|
288 | /** 自然美颜 */
|
289 | nature
|
290 | }
|
291 | /** filterType 的合法值 */
|
292 | interface FilterType {
|
293 | /** 标准 */
|
294 | standard
|
295 | /** 粉嫩 */
|
296 | pink
|
297 | /** 怀旧 */
|
298 | nostalgia
|
299 | /** 蓝调 */
|
300 | blues
|
301 | /** 浪漫 */
|
302 | romantic
|
303 | /** 清凉 */
|
304 | cool
|
305 | /** 清新 */
|
306 | fresher
|
307 | /** 日系 */
|
308 | solor
|
309 | /** 唯美 */
|
310 | aestheticism
|
311 | /** 美白 */
|
312 | whitening
|
313 | /** 樱红 */
|
314 | cerisered
|
315 | }
|
316 | interface onStateChangeEventDetail {
|
317 | /** 状态码 */
|
318 | code: number
|
319 | }
|
320 | interface onNetstatusEventDetail {
|
321 | /** 网络状态 */
|
322 | info: NetStatus
|
323 | }
|
324 | interface onErrorEventDetail {
|
325 | /** 错误信息 */
|
326 | errMsg: string
|
327 | /** 错误码 */
|
328 | errCode: string | number
|
329 | }
|
330 | interface onBgmProgressEventDetail {
|
331 | /** 进展 */
|
332 | progress
|
333 | /** 持续时间 */
|
334 | duration: number
|
335 | }
|
336 | }
|
337 | /** 实时音视频录制。需要用户授权 scope.camera、scope.record
|
338 | * 需要先通过类目审核,再在小程序管理后台,「开发」-「接口设置」中自助开通该组件权限。
|
339 | * @classification media
|
340 | * @supported weapp, qq
|
341 | * @example_react
|
342 | * ```tsx
|
343 | * class App extends Components {
|
344 | * render () {
|
345 | * return (
|
346 | * <LivePusher url='url' mode='RTC' autopush />
|
347 | * )
|
348 | * }
|
349 | * }
|
350 | * ```
|
351 | * @example_vue
|
352 | * ```html
|
353 | * <template>
|
354 | * <live-pusher url="url" mode="RTC" :autopush="true" />
|
355 | * </template>
|
356 | * ```
|
357 | * @see https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html
|
358 | */
|
359 | declare const LivePusher: ComponentType<LivePusherProps>
|
360 | export { LivePusher, LivePusherProps }
|