public void DealVoipAuidoFrame(IntPtr ip, uint dwContextEnc) { FrameHeadrDec pFrmHdrDec = (FrameHeadrDec)Marshal.PtrToStructure(ip, typeof(FrameHeadrDec)); if (pFrmHdrDec.data == IntPtr.Zero) { return; } PLAYFRAMEHDR hdr = new PLAYFRAMEHDR { m_byMediaType = pFrmHdrDec.mediaType, m_dwDataSize = pFrmHdrDec.data_size, m_byFrameRate = 0, m_dwFrameID = 0, m_dwTimeStamp = pFrmHdrDec.m_dwTimeStamp, union1 = new Anonymous_3d5d69df_3122_4137_83f1_a9b198afad7b { m_tAudioParam = new Anonymous_0584d86c_3910_4038_bad0_69ed09db9a8d { m_byAudioMode = pFrmHdrDec.audio_mode, } } }; int Temp_int = Marshal.SizeOf(hdr); byte[] pD = new byte[pFrmHdrDec.data_size]; Marshal.Copy(pFrmHdrDec.data, pD, 0, (int)pFrmHdrDec.data_size); byte[] pl = PubMethod.StructToBytes(hdr); byte[] bytes = pl.Concat(pD).ToArray(); uint len = Convert.ToUInt32(pFrmHdrDec.data_size + 40); bool bol = SDK_TLi.TLPlay_InputAudioData(m_hPlayPort, ref bytes[0], len); }