gpt4 book ai didi

macos - 如何使用Voice API使用华为3g Modem调用电话?

转载 作者:行者123 更新时间:2023-12-03 16:08:40 25 4
gpt4 key购买 nike

一些华为 3g 调制解调器(例如我的 (E1752))能够调用和接听电话。我相信机上有 PCM channel ,可以在调用或接听电话时使用,但我没有更多相关信息。

我正在使用他们的应用程序,称为“移动合作伙伴”,这是一个相当完整的应用程序,支持调用和接听电话。但我想构建自己的应用程序,该应用程序将在 Mac OS X 上运行。但我无法找到任何详细说明语音 API 和板载 PCM channel 的文档。如果有人知道这一点,请告诉我。

Mobile Partner app with support for Voice Calls

最佳答案

语音实现如下:- 您的Modem总共注册了5个设备。音频通过名为“Huawei Mobile Connect - 应用接口(interface)”的串口发送。

语音(输入|输出)数据的格式:

  wFormatTag = WAVE_FORMAT_PCM;
nChannels = 1;
nSamplesPerSec = 8000;
nAvgBytesPerSec = 16000;
nBlockAlign = 2;
wBitsPerSample = 16;
cbSize = 0;

ReadFile 或 WriteFile 操作(对于 COM 端口)中语音数据的 block 大小必须设置为 320 字节。每次ReadFile之后必须进行WriteFile操作(在其他选择中缓冲区将溢出并且调制解调器将在一段时间后重新启动)。示例:

//   BlockSize - size of buff for wave in|out operations (in my case 320*4 bytes)

while (!bAllRead) {
if (cInfo->hCom == INVALID_HANDLE_VALUE) {
SetVoiceClosed(cInfo);//exit from thread
return 0;
}

BOOL isRead = ReadFile(cInfo->hCom, cInfo->Header[counter].lpData + currBlocLength, 320, &nActualRead, &cInfo->o);
if (isRead || (GetLastError() == ERROR_IO_PENDING && GetOverlappedResult(cInfo->hCom, &cInfo->o, &nActualRead, TRUE))) {
if (nActualRead > 0) {
// обратка
nActualWrite = 0;
int nActualWriteAll = 0;
BOOL isWrite = WriteFile(cInfo->hCom, CurrBuffPtr + currBlocLength, nActualRead, &nActualWrite, &cInfo->oVoiceOut);
while (isWrite || (GetLastError() == ERROR_IO_PENDING && GetOverlappedResult(cInfo->hCom, &cInfo->oVoiceOut, &nActualWrite, TRUE))) {
nActualWriteAll += nActualWrite;
if (nActualWriteAll >= nActualRead)
break;
}
currBlocLength += nActualRead;
if (currBlocLength >= BlockSize)
bAllRead = true;
}
else {
Sleep(25);// wait for voice data (resync)
PurgeComm(cInfo->hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
}
}
else {
bAllRead = true;// there are no active call
PurgeComm(cInfo->hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
}
}

类似的东西)))。我在互联网上找不到任何有用的信息,所以所有建议都是基于我的实验。我希望这有用。

PS:我希望wave in|out操作对您来说不会成为问题。

PS2:抱歉我的英语不好,我来自乌克兰。

关于macos - 如何使用Voice API使用华为3g Modem调用电话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8367864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com