public void SenderData(MediaData mediaData)
{
NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
try
{
if (pipedStream == null)
{
return;
}
//同步写数据
byte[] byteArray1 = BitConverter.GetBytes(mediaData.Size);
byte[] byteArray2 = BitConverter.GetBytes((Int32)mediaData.StreamType);
byte[] byteArray3 = BitConverter.GetBytes((Int32)mediaData.DataType);
byte[] byteArray4 = BitConverter.GetBytes((Int32)mediaData.FrameType);
byte[] byteArray5 = mediaData.Data;
//将数据合并起来
byte[] byteArray = new byte[byteArray1.Length + byteArray2.Length + byteArray3.Length + byteArray4.Length + byteArray5.Length];
byteArray1.CopyTo(byteArray, 0);
byteArray2.CopyTo(byteArray, byteArray1.Length);
byteArray3.CopyTo(byteArray, byteArray1.Length + byteArray2.Length);
byteArray4.CopyTo(byteArray, byteArray1.Length + byteArray2.Length + byteArray3.Length);
byteArray5.CopyTo(byteArray, byteArray1.Length + byteArray2.Length + byteArray3.Length + byteArray4.Length);
//写入管道
//pipedStream.BeginWrite(byteArray, 0, byteArray.Length, new AsyncCallback(CallbackFun), null);
pipedStream.Write(byteArray, 0, byteArray.Length);
}
catch (Exception ex)
{
logEx.Error(ex.ToString());
if (ex is System.IO.IOException)
{
this.Stop();
}
}
}