AudioFrame

  • Unity

更新时间不可用

原始音频数据。

C#
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

保留参数。

表格内容超出当前宽度,可横向滚动查看更多列。

这个页面有帮助吗?