getWaveformPortion()
@remotion/media-utils
包中的辅助函数之一。
接受庞大的波形数据(例如通过 getAudioData()
获取)并返回修剪和简化版本,以便更简单地进行可视化。如果您只需要音量数据,则此函数适用;如果您需要有关每个频率范围的更详细数据,请使用 visualizeAudio()
。
参数
具有以下参数的对象:
audioData
AudioData
有关音频的信息。使用 getAudioData()
进行获取。
startTimeInSeconds
number
将波形修剪以排除 startTimeInSeconds
之前的所有数据。
durationInSeconds
number
将波形修剪以排除 startTimeInSeconds + durationInSeconds
之后的所有数据。
numberOfSamples
number
您希望结果数组有多大。该函数将压缩波形以适应 numberOfSamples
个数据点。
返回值
Bar[]
- 一个具有以下属性的对象数组:
index
number
数据点的索引,从 0 开始。可用于指定为 React key
属性而不会收到警告。
amplitude
number
描述音频振幅 / 音量 / 响度的值。值范围在 0 到 1 之间。
示例
tsx
import {getAudioData ,getWaveformPortion } from "@remotion/media-utils";import {staticFile } from "remotion";constaudioData = awaitgetAudioData (staticFile ("music.mp3")); /* {channelWaveforms: [Float32Array(4410000), Float32Array(4410000)],sampleRate: 44100,durationInSeconds: 100.0000,numberOfChannels: 2,resultId: "0.432878981",isRemote: false} */constwaveformPortion = awaitgetWaveformPortion ({audioData ,// Will select time range of 20-40 secondsstartTimeInSeconds : 20,durationInSeconds : 20,numberOfSamples : 10,}); // [{index: 0, amplitude: 0.14}, ... {index: 9, amplitude: 0.79}]console .log (waveformPortion .length ); // 10
tsx
import {getAudioData ,getWaveformPortion } from "@remotion/media-utils";import {staticFile } from "remotion";constaudioData = awaitgetAudioData (staticFile ("music.mp3")); /* {channelWaveforms: [Float32Array(4410000), Float32Array(4410000)],sampleRate: 44100,durationInSeconds: 100.0000,numberOfChannels: 2,resultId: "0.432878981",isRemote: false} */constwaveformPortion = awaitgetWaveformPortion ({audioData ,// Will select time range of 20-40 secondsstartTimeInSeconds : 20,durationInSeconds : 20,numberOfSamples : 10,}); // [{index: 0, amplitude: 0.14}, ... {index: 9, amplitude: 0.79}]console .log (waveformPortion .length ); // 10
替代方案
visualizeAudio()
函数更适合基于音频的频率属性(低音、中音、高音等)进行可视化。