gpt4 book ai didi

pjsip - PJSIP (PJSUA2) 是否可以在没有音频设备的情况下使用?

转载 作者:行者123 更新时间:2023-12-01 08:52:31 29 4
gpt4 key购买 nike

我们正在为一些还没有任何音频设备的嵌入式硬件开发应用程序。目前,我们只是在评估 PJSIP 是否在硬件上运行良好,是否可以通过网络发送音频数据。

为此,我们有一个客户端需要从文件中读取音频数据,通过 PJSIP 将其发送到服务器,然后将其写入另一个文件,因此我们可以简单地比较这两个文件(从某种意义上说,它们听起来像是相同,不一定是完全相同的内容)。所以设置将是这样的:

                   +--------+
(Audio file 1) --> |_Client_| +--------+
| PJSIP | --> |_PJSIP__|
+--------+ | Server | --> (Audio file 2)
+--------+

我们编译了应用程序,但是,当我运行客户端应用程序并尝试建立对服务器的调用时,它提示没有任何音频硬件(为了可读性而格式化):
02:14:47.636 call.cpp
pjsua_call_make_call(
acc.getId(),
&pj_dst_uri,
param.p_opt,
this,
param.p_msg_data,
&id)
error: Unable to find default audio device
(PJMEDIA_EAUD_NODEFDEV)
(status=420006)
[../src/pjsua2/call.cpp:485]

我怀疑服务器在接听电话时会出现同样的问题,但我们还没有那么远。

现在我知道没有音频硬件( dmesg 的输出清楚地表明 ALSA 设备列表为空)但这对我来说不是问题。

我们按照子分类遵循了指南 Call但它来自之前编写的其他一些代码,使用 AudioMedia 的代码和 PJSIP 库中的其他类,我怀疑它们会自动搜索设备。

如上所述,我希望能够通过从磁盘读取的一系列音频文件中的一个来发送,所以并不真正关心音频设备是否可用。

PJSIP 有办法做到这一点吗?有没有人知道或有任何经验,执行这个(看似)简单的任务的代码?

最佳答案

事实证明,您可以简单地将端点配置为在 libInit() 之后立即使用空音频设备。称呼:

myEndpoint.libInit(myEndpointConfig);
myEndpoint.audDevManager().setNullDev()

这可以防止自动检测产生错误。

关于pjsip - PJSIP (PJSUA2) 是否可以在没有音频设备的情况下使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38389354/

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