UNPKG

8.67 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 /** 状态变化事件,detail = {code}
193 * @supported weapp, qq
194 */
195 onStateChange?: CommonEventFunction<LivePusherProps.onStateChangeEventDetail>
196 /** 渲染错误事件,detail = {errMsg, errCode}
197 * @supported weapp, qq
198 */
199 onError?: CommonEventFunction<LivePusherProps.onErrorEventDetail>
200 /** 背景音进度变化时触发,detail = {progress, duration}
201 * @supported weapp, qq
202 */
203 onBgmProgress?: CommonEventFunction<LivePusherProps.onBgmProgressEventDetail>
204 /** 背景音播放完成时触发
205 * @supported weapp, qq
206 */
207 onBgmComplete?: CommonEventFunction
208 /** 返回麦克风采集的音量大小
209 * @supported weapp
210 */
211 onAudioVolumeNotify?: CommonEventFunction
212 /** 网络状态通知,detail = {info}
213 * @supported weapp, qq
214 */
215 onNetStatus?: CommonEventFunction
216 /** 进入小窗
217 * @supported weapp
218 */
219 onEnterPictureInPicture?: string
220 /** 退出小窗
221 * @supported weapp
222 */
223 onLeavePictureInPicture?: string
224 /** 背景音开始播放时触发
225 * @supported weapp, qq
226 */
227 onBgmStart?: CommonEventFunction
228}
229declare namespace LivePusherProps {
230 /** orientation 的合法值 */
231 interface Orientation {
232 /** 竖直 */
233 vertical
234 /** 水平 */
235 horizontal
236 }
237 /** localMirror 的合法值 */
238 interface LocalMirror {
239 /** 前置摄像头镜像,后置摄像头不镜像 */
240 auto
241 /** 前后置摄像头均镜像 */
242 enable
243 /** 前后置摄像头均不镜像 */
244 disable
245 }
246 /** audioReverbType 的合法值 */
247 interface AudioReverbType {
248 /** 关闭 */
249 0
250 /** KTV */
251 1
252 /** 小房间 */
253 2
254 /** 大会堂 */
255 3
256 /** 低沉 */
257 4
258 /** 洪亮 */
259 5
260 /** 金属声 */
261 6
262 /** 磁性 */
263 7
264 }
265 /** audioVolumeType 的合法值 */
266 interface AudioVolumeType {
267 /** 自动 */
268 auto
269 /** 媒体音量 */
270 media
271 /** 通话音量 */
272 voicecall
273 }
274 /** beautyStyleType 的合法值 */
275 interface BeautyStyleType {
276 /** 光滑美颜 */
277 smooth
278 /** 自然美颜 */
279 nature
280 }
281 /** filterType 的合法值 */
282 interface FilterType {
283 /** 标准 */
284 standard
285 /** 粉嫩 */
286 pink
287 /** 怀旧 */
288 nostalgia
289 /** 蓝调 */
290 blues
291 /** 浪漫 */
292 romantic
293 /** 清凉 */
294 cool
295 /** 清新 */
296 fresher
297 /** 日系 */
298 solor
299 /** 唯美 */
300 aestheticism
301 /** 美白 */
302 whitening
303 /** 樱红 */
304 cerisered
305 }
306 interface onStateChangeEventDetail {
307 /** 状态码 */
308 code: number
309 }
310 interface onNetstatusEventDetail {
311 /** 网络状态 */
312 info: NetStatus
313 }
314 interface onErrorEventDetail {
315 /** 错误信息 */
316 errMsg: string
317 /** 错误码 */
318 errCode: string | number
319 }
320 interface onBgmProgressEventDetail {
321 /** 进展 */
322 progress
323 /** 持续时间 */
324 duration: number
325 }
326}
327/** 实时音视频录制。需要用户授权 scope.camera、scope.record
328 * 需要先通过类目审核,再在小程序管理后台,「开发」-「接口设置」中自助开通该组件权限。
329 * @classification media
330 * @supported weapp, qq
331 * @example_react
332 * ```tsx
333 * class App extends Components {
334 * render () {
335 * return (
336 * <LivePusher url='url' mode='RTC' autopush />
337 * )
338 * }
339 * }
340 * ```
341 * @example_vue
342 * ```html
343 * <template>
344 * <live-pusher url="url" mode="RTC" :autopush="true" />
345 * </template>
346 * ```
347 * @see https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html
348 */
349declare const LivePusher: ComponentType<LivePusherProps>
350export { LivePusher, LivePusherProps }