UNPKG

9.01 kBTypeScriptView Raw
1import { ComponentType } from 'react'
2import { StandardProps, CommonEventFunction, NetStatus } from './common'
3/** 实时音视频录制。
4 * 需要用户授权 scope.camera、scope.record
5 * 暂只针对国内主体如下类目的小程序开放,需要先通过类目审核,再在小程序管理后台,“设置”-“接口设置”中自助开通该组件权限。
6 */
7interface 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}
239declare 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 */
359declare const LivePusher: ComponentType<LivePusherProps>
360export { LivePusher, LivePusherProps }