Mu-law (G.711) コーデック wav ファイルを SIP 電話のネットワーク経由でバイナリ データとして送信するのに苦労しており、その SIP 電話でこの wav ファイルを再生したいと考えています。以下はC#でのコードです。誰が私が間違っているのか教えてもらえますか?
private void MediaStreamPump()
{
String strHostName;
m_MediaStreamPumping = true;
strHostName = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostByName(strHostName);
IPEndPoint endPt = new IPEndPoint(ipEntry.AddressList[0], 7078);
Socket receiveSock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
receiveSock.Bind(endPt);
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint senderRemote = (EndPoint)sender;
IPAddress[] sendToEntry=Dns.GetHostAddresses(m_RemoteEndpointIp);
IPEndPoint sendToIp=new IPEndPoint(ipEntry.AddressList[0],m_RemoteEndpointPort);
EndPoint otherEndpoint = (EndPoint)sendToIp;
receiveSock.ReceiveTimeout = 1000;
FileStream fileStream = new FileStream("E:\\G711NM.wav", FileMode.Open, FileAccess.Read);
br = new BinaryReader(fileStream);
try
{
byte[] buf = new byte[512];
int count=1;
// 32k
while (true)
{
var buf1 = new byte[512];
count = br.Read(buf1, 0, buf1.Length);
if (count > 0)
{
receiveSock.ReceiveFrom(buf, SocketFlags.None, ref senderRemote);
receiveSock.SendTo(buf1, SocketFlags.None, senderRemote);
}
else
break;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
receiveSock.Close();
m_MediaStreamPumping = false;
}