using System; using System.Collections.Generic; using System.Text; namespace JT1078.Flv.Metadata { public class AudioSpecificConfig { public AudioObjectType AudioType { get; set; } = AudioObjectType.AAC_LC; public SamplingFrequency SamplingFrequencyIndex { get; set; } = SamplingFrequency.Index_8000; /// /// 其实有很多,这里就固定为立体声 /// public int ChannelConfiguration { get; set; } = 1; public byte[] ToArray() { var value = Convert.ToInt16($"{Convert.ToString((int)AudioType, 2).PadLeft(5, '0')}{Convert.ToString((int)SamplingFrequencyIndex, 2).PadLeft(4, '0')}{Convert.ToString(ChannelConfiguration, 2).PadLeft(4, '0')}000", 2); return new byte[] { (byte)(value >> 8), (byte)value, 0x56, 0xe5, 0x00 }; } /// /// 音频类型 /// 其实有很多,这里就列几个,如有需要再加 /// public enum AudioObjectType { AAC_MAIN = 1, AAC_LC = 2, AAC_SSR = 3, AAC_LTP = 4, SBR = 5, AAC_SCALABLE } public enum SamplingFrequency { Index_96000 = 0x00, Index_88200 = 0x01, Index_64000 = 0x02, Index_48000 = 0x03, Index_44100 = 0x04, Index_32000 = 0x05, Index_24000 = 0x06, Index_22050 = 0x07, Index_16000 = 0x08, Index_12000 = 0x09, Index_11025 = 0x0a, Index_8000 = 0x0b, Index_7350 = 0x0c, ESCAPE = 0x0f } } }