AudioFrame
原始音频数据。
public class AudioFrame { public AudioFrame() { type = AUDIO_FRAME_TYPE.FRAME_TYPE_PCM16; samplesPerChannel = 0; bytesPerSample = BYTES_PER_SAMPLE.TWO_BYTES_PER_SAMPLE; channels = 0; samplesPerSec = 0; RawBuffer = new byte[0]; renderTimeMs = 0; avsync_type = 0; } public AudioFrame(AUDIO_FRAME_TYPE type, int samplesPerChannel, BYTES_PER_SAMPLE bytesPerSample, int channels, int samplesPerSec, byte[] buffer, long renderTimeMs, int avsync_type) { this.type = type; this.samplesPerChannel = samplesPerChannel; this.bytesPerSample = bytesPerSample; this.channels = channels; this.samplesPerSec = samplesPerSec; this.RawBuffer = buffer; this.renderTimeMs = renderTimeMs; this.avsync_type = avsync_type; } public AUDIO_FRAME_TYPE type { set; get; } public int samplesPerChannel { set; get; } public BYTES_PER_SAMPLE bytesPerSample { set; get; } public int channels { set; get; } public int samplesPerSec { set; get; } public byte[] RawBuffer { set; get; } public long renderTimeMs { set; get; } public int avsync_type { set; get; } }
属性
- type
-
音频帧类型,详见 AUDIO_FRAME_TYPE。
- samplesPerChannel
- 每个声道的采样点数。
- bytesPerSample
- 每个采样点的字节数。对于 PCM 来说,一般使用 16 bit,即两个字节。
- channels
-
声道数量(如果是立体声,数据是交叉的)。
- 1: 单声道
- 2: 双声道
- samplesPerSec
- 每声道每秒的采样点数。
- RawBuffer
-
声音数据缓存区(如果是立体声,数据是交叉存储的)。
缓存区数据大小
buffer
=samples
×channels
×bytesPerSample
。 - renderTimeMs
-
外部音频帧的渲染时间戳。
你可以使用该时间戳还原音频帧顺序;在有视频的场景中(包含使用外部视频源的场景),该参数可以用于实现音视频同步。
- avsync_type
- 保留参数。