如何从麦克风发送语音或播放来自hsdpa dongle C#的录制音频

Saj*_*nga 0 c# telecommunication at-command

我已完成所有呼叫拨号部分,它的工作原理.现在我需要通过手机播放录制的声音或麦克风.我只需要知道如何将音频传递到加密狗并通过通话发送.

这是我拨打电话号码的工作代码

SerialPort port = new SerialPort();
port.Open();
string t = port.ReadExisting();
Thread.Sleep(100);

string cmd = "ATD";
string phoneNumber = "071********";
port.WriteLine(cmd + phoneNumber + ";\r");


port.Close();
Run Code Online (Sandbox Code Playgroud)

xry*_*669 7

对于您的调制解调器,您有3个COM端口可用.一个用于发送AT命令,第二个用于发送数据(语音数据),最后一个用于监视异步状态改变.

当您拨打电话(使用ATD)时,您必须等待监控端口上的"^ CONN:1,0".

那么你需要一个8KHz,16位有符号,1通道的声源.在数据端口上写入320字节的此源,每个20ms.

您还将从此端口读取320字节的数据,另一端为20ms.

当你得到"^ CEND:..."时,呼叫就会终止.

但要注意几点.即使对方拒绝你的电话,你也会得到"^ CONN:1,0".因此,尝试首先从数据端口读取数据,以检查^ CONN消息后对方是否仍然存在.

  • @Chris:首先,您可以将数据流记录为raw,然后尝试使用SOX来解释音频流.因此,每20ms 320字节给出16KiB = 8000个样本*2(16位)每秒.如果μLaw编码,您可能会有所不同. (2认同)