Skip to content

属性 ​

WaveformRecorderView 支持下列属性,以及 style、testID 等标准 View 属性。请为它设置高度,因为视图没有固有尺寸。事件属性见事件。类型定义见 API 参考。

输出 ​

所有输出设置都放在一个嵌套的 output 属性中,每个字段都是可选的。

tsx
<WaveformRecorderView
  output={{ format: 'm4a', sampleRate: 44100, channels: 1, bitrate: 128000, quality: 'high' }}
/>
字段类型默认值说明
uristring缓存目录中的一个文件录音的 file:// URI。只用于只有一个分段的录音,参阅分段。
format'm4a' | 'aac' | 'wav' | 'opus''m4a'参阅格式。
sampleRatenumber44100单位 Hz。
channels1 | 21
bitratenumber128000单位 bit/s。wav 忽略此项。在 Android 上会按 quality 限制范围。
quality'low' | 'medium' | 'high''high'iOS 上是编码器质量,Android 上是码率范围。

时长限制与采样节奏 ​

属性类型默认值说明
maxDurationMsnumber0达到后自动停止:先触发 onMaxDurationReached,再触发 onComplete。0 表示不限制。
minDurationMsnumber0如果调用 stop() 时录音短于该值,录音会被丢弃:状态回到 idle,并触发 code 为 'min-duration' 的 onError。
meterUpdatesPerSecondnumber30读取电平并触发 onMeter 的频率,限制在 1 到 120 之间。
samplesPerSecondnumber12每秒新增的波形条数。波形条在电平采样时添加,所以不会超过 meterUpdatesPerSecond。

波形条 ​

属性类型默认值说明
playedBarColorColorValue白色录音时波形条的颜色,以及预览时已播放部分的颜色。
unplayedBarColorColorValue50% 不透明度的白色预览时未播放部分的颜色。
futureBarColorColorValue更透明的 unplayedBarColorfutureBarStyle 占位标记的颜色。
barWidthnumber3单位 dp 或 pt。
barGapnumber2单位 dp 或 pt。
barRadiusnumber-1圆角半径。负数表示 barWidth / 2。
futureBarStyle'hidden' | 'dot' | 'line''hidden'波形条到达之前,左侧空位显示什么。
recordingMode'scroll' | 'morph' | 'centered''scroll'目前只实现了 'scroll',其他值的效果与 'scroll' 相同。
newSampleEntry'grow' | 'fade' | 'none''grow'目前所有取值都使用生长动画。

背景与计时 ​

属性类型默认值说明
containerBackgroundColorColorValue#3478F6胶囊背景的颜色。
containerBorderRadiusnumber16
showBackgroundbooleantrue设为 false 则只绘制波形条和计时,背景由你自己提供。
showTimebooleantrue右侧的 m:ss 时间标签。
timeColorColorValue白色
timeMode'count-up' | 'count-down''count-up''count-down' 在录音时显示距 maxDurationMs 的剩余时间,在预览时显示文件的剩余时间。没有设置 maxDurationMs 时,录音中仍然正向计时。

默认是蓝色背景上的白色波形条。如果在浅色页面上设置 showBackground={false},请同时修改 playedBarColor、unplayedBarColor 和 timeColor。

预览 ​

属性类型默认值说明
enablePreviewbooleantrue为 false 时,enterPreview() 会触发 code 为 'preview-disabled' 的 onError。
enableContinueRecordingbooleantrue为 false 时,在预览中调用 resume() 会触发 code 为 'continue-disabled' 的 onError。
showPlayButtonbooleantrue预览时背景内的播放和暂停按钮。
playButtonColorColorValue白色

手势 ​

属性类型默认值说明
enableSlideToCancelbooleanfalse向左拖动后触发 onSlideCancel。需要你自己调用 cancel()。
slideToCancelThresholdDpnumber80水平距离,单位 dp 或 pt。
enableSlideToLockbooleanfalse向上拖动后触发 onSlideLock。
slideToLockThresholdDpnumber80垂直距离,单位 dp 或 pt。

参阅滑动手势。

PCM 流 ​

属性类型默认值说明
enablePcmStreambooleanfalse录音时触发 onPcmChunk。仅在 output.format = 'wav' 时有效。
pcmChunkMsnumber200每个数据块的大致时长,单位 ms,最小 20。

参阅 PCM 流。

后台录音 ​

属性类型默认值说明
backgroundRecordingbooleanfalse需要原生配置,参阅安装。
backgroundNotificationTitlestring'Recording'仅 Android。
backgroundNotificationBodystring'Microphone recording in progress.'仅 Android。

静音检测 ​

属性类型默认值说明
silenceThresholdDbnumber-160低于该 dBFS 值时视为静音。默认值永远不会触发。
silenceTimeoutMsnumber0电平需要持续低于阈值的时长。0 表示关闭检测。
autoStopOnSilencebooleanfalse检测到静音时停止并完成录音。

同时设置 silenceThresholdDb 和 silenceTimeoutMs 才能开启检测。参阅静音检测。

受控状态 ​

state 是一个实验性的受控模式。设置后,ref 方法不再执行状态切换,只会通过 onStateChange 报告请求的状态;而修改该属性本身也不会开始或停止录音。请不要设置它,改用 ref 方法。

基于 MIT 许可证发布。