C# 如何从麦克风发送语音或播放hsdpa加密狗C录制的音频#

C# 如何从麦克风发送语音或播放hsdpa加密狗C录制的音频#,c#,at-command,telecommunication,C#,At Command,Telecommunication,我已经做了所有的电话拨号部分,它的工作。现在我需要通过手机播放录制的声音或麦克风,我只需要知道如何将音频传送到加密狗并通过电话发送 这是我拨电话号码的工作代码 SerialPort port = new SerialPort(); port.Open(); string t = port.ReadExisting(); Thread.Sleep(100); string cmd = "ATD"; string phoneNumber = "071********"; port.WriteLin

我已经做了所有的电话拨号部分,它的工作。现在我需要通过手机播放录制的声音或麦克风,我只需要知道如何将音频传送到加密狗并通过电话发送

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

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();

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

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

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

您还可以从这个端口读取320字节的数据,另一端的数据每20ms读取一次

当您收到“^CEND:…”时,呼叫将终止


然而,要提防少数人被抓。即使对方拒绝了你的呼叫,你也会得到“^CONN:1,0”。因此,首先尝试从数据端口读取数据,以检查^CONN消息后另一端是否仍在那里。

您是否尝试了?我在这里猜测,因为我找不到任何文档,但我不相信您会通过该虚拟COM端口发送音频;它可能只用于命令。查看设备管理器,您可能会看到音频设备是加密狗的一部分。如果我是对的,您需要打开这些音频设备来发送/接收音频。看起来.Net的音频api缺少,所以您可以尝试使用。我已经完成了呼叫拨号部分,它可以工作。但是我无法获取或向加密狗发送语音。有两个COM端口。我将所有AT命令传递给COM14,并将SerialDataReceivedEvent写入COM12端口。当我应答呼叫时,当我将读取的内容转换为字符串时,COM12端口读取器会读取一些内容,如下所示“\r\n^ORIG:1,0\r\n\r\n^CONF:1\r\n\r\n^CONN:1,0\r\n\r\n^CEND:1,8104,16\r\n”我认为这是dongle用来发送和接收语音数据的第二个端口。有人能告诉我如何从该端口COM12获取音频流,并将麦克风输入发送到该端口。COM12如何显示在Windows设备管理器中?它显示为音频设备吗?这是我的设备管理器@xryl669的屏幕截图-请告诉我,你是如何得出这些数字的?我在这里有一个帖子:@Chris:首先,你可以将数据流记录为原始数据,然后尝试SOX来解释音频流。因此,每20ms 320字节给出每秒16KiB=8000个样本*2(16位)。如果您的密码不正确,您的密码可能会有所不同。