From d0b99019e7b1fe62b7ab13cb0bc62e30321040d8 Mon Sep 17 00:00:00 2001 From: yedajiang44 <602830483@qq.com> Date: Sat, 14 Mar 2020 01:25:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99=E5=85=A5AudioTag=E3=80=82=E3=80=82?= =?UTF-8?q?=E3=80=82=E5=B9=B4=E7=BA=AA=E5=A4=A7=E4=BA=86=EF=BC=8C=E6=BC=8F?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MessagePack/FlvMessagePackWriter_Flv.cs | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/JT1078.Flv/MessagePack/FlvMessagePackWriter_Flv.cs b/src/JT1078.Flv/MessagePack/FlvMessagePackWriter_Flv.cs index b10bcdd..9bc524f 100644 --- a/src/JT1078.Flv/MessagePack/FlvMessagePackWriter_Flv.cs +++ b/src/JT1078.Flv/MessagePack/FlvMessagePackWriter_Flv.cs @@ -18,6 +18,9 @@ namespace JT1078.Flv.MessagePack WriteUInt24(tag.StreamId); switch (tag.Type) { + case TagType.Audio: + WriteAudioTags(tag.AudioTagsData); + break; case TagType.Video: //VideoTag WriteVideoTags(tag.VideoTagsData); @@ -29,11 +32,8 @@ namespace JT1078.Flv.MessagePack //flv Amf3 WriteAmf3(tag.DataTagsData); break; - case TagType.Audio: - //todo:VIDEODATA - break; } - tag.DataSize = GetCurrentPosition() - 11; + tag.DataSize = (GetCurrentPosition() - DataSizePosition - 3 - 7); WriteInt24Return(tag.DataSize, DataSizePosition); } @@ -57,28 +57,33 @@ namespace JT1078.Flv.MessagePack public void WriteVideoTags(VideoTags videoTags) { WriteByte((byte)((byte)videoTags.FrameType | (byte)videoTags.CodecId)); - if (videoTags.CodecId== CodecId.AvcVideoPacke) + if (videoTags.CodecId == CodecId.AvcVideoPacke) { WriteAvcVideoPacke(videoTags.VideoData); } } + public void WriteAudioTags(AudioTags audioTags) + { + WriteArray(audioTags.ToArray()); + } + public void WriteAvcVideoPacke(AvcVideoPacke videoPacke) { WriteByte((byte)videoPacke.AvcPacketType); - if (videoPacke.AvcPacketType== AvcPacketType.SequenceHeader) + if (videoPacke.AvcPacketType == AvcPacketType.SequenceHeader) { //videoPacke.CompositionTime = 0; WriteUInt24(0); //AVCDecoderConfigurationRecord WriteAVCDecoderConfigurationRecord(videoPacke.AVCDecoderConfiguration); } - else if(videoPacke.AvcPacketType == AvcPacketType.Raw) + else if (videoPacke.AvcPacketType == AvcPacketType.Raw) { WriteUInt24(videoPacke.CompositionTime); - if (videoPacke.MultiData != null && videoPacke.MultiData.Count>0) + if (videoPacke.MultiData != null && videoPacke.MultiData.Count > 0) { - foreach(var item in videoPacke.MultiData) + foreach (var item in videoPacke.MultiData) { WriteInt32(item.Length); WriteArray(item);