当前位置: 首页 > 面试题库 >

ALSA:扬声器和麦克风的周期大小之间的关系

魏俊茂
2023-03-14
问题内容

我有一个带麦克风和扬声器的音频会议设备。麦克风和扬声器具有相同的采样率,snd_pcm_hw_params_set_rate_near()例如8000
Hz。我是否需要将两者的周期大小和周期数设置为相同(因为两个此类设备相互通信)?

还是可以为扬声器选择与为麦克风配置的周期/时段不同的周期/时段大小?如何确定要使用的期间和期间大小?

我正在使用snd_pcm_hw_params_set_period_size_near()snd_pcm_hw_params_set_periods_near()API来设置扬声器和麦克风的周期大小和周期。

(我是ALSA的新手)。


问题答案:

支持哪种周期大小和缓冲区大小取决于驱动程序,但是如果是同一设备,则回放和捕获设备可能支持相同的参数。

参数是否需要相同取决于您的应用程序访问这些设备的方式。就驾驶员而言,这些设备独立工作。

使用哪种缓冲区/周期大小取决于您如何平衡延迟,电源使用和过载/欠载安全性。延迟与回放设备上的缓冲区大小或捕获设备上的周期ssi成正比。较短的时间会稍微增加功耗。Xrun安全性通过增加较大的缓冲区来增加,而在较短的时间内则有所增加。



 类似资料:
  • 播放音符 播放声音 录制 文字转语音

  • 在一些移动设备中(如摩托罗拉One Power-Android10、Redmi Note 5 Pro-Android7.1.2),来自手机扬声器的声音通过手机麦克风进入会议并产生回声。只有当手机扬声器处于打开状态时,才会出现此回声问题。 我使用了AudioManagerMODE_IN_COMMUNICATION模式: 此外,在音频约束下使用PeerConnectionFactory的createA

  • 我有一个语音聊天应用程序,它工作得很好。目前,我正在尝试使该应用程序支持蓝牙耳机,以防任何连接。我需要处理两种情况: 蓝牙耳机在通话开始前已连接 蓝牙耳机在通话过程中连接到设备 对于第一种情况,应用程序应自动开始使用耳机作为其默认输入/输出音频设备。另一方面,应用程序在耳机连接到设备后,应从当前输入/输出音频设备切换到蓝牙耳机。 我使用以下代码成功地处理了第一个案例: 至于第二种情况,我创建了一个

  • 问题内容: 我正在尝试通过Java访问麦克风的级别。我不需要录制任何东西,我只想知道声音水平的相对范围。 这可以实时吗? 如果这是不可能的,那么这可能会起作用:当电平超过某个值时开始记录,当电平下降到一定水平以下一段时间后停止录制四分之一秒的位并读取它的音量,如果它在阈值以下停止录音。 提前致谢 问题答案: 您可以通过Sound API访问麦克风,但不会给您简单的响度级别。您只需要捕获数据并就其声

  • 有没有办法通过耳机传送麦克风输入,同时通过智能手机扬声器使用音频输出? 我已经看了几个小时了,我看到这在iOS上显然是不可能的,但是Android呢... 我用的是三星Galaxy S4。 这是我的代码的一部分,即使耳机已插入,也可以通过扬声器路由音频输出: 但当我试图通过耳机的麦克风控制我的应用程序时,什么都没有。所以我试着用智能手机的那一个,它显然起作用了。 它看起来不像其他AudioMana

  • 我想直播Android麦克风,可以使用VLC播放器等听到。 Playstore主要提供IP摄像头应用,但这些应用是通过内部网络实现的。我想在互联网上播放流媒体。 可能吗? 我尝试了以下代码片段,但目前不起作用: 在VLC播放器前,我试着听(媒体)- 还有别的办法吗?