使用Soundflower驱动程序通过Genymotion进行录音

时间:2015-08-03 14:16:28

标签: android macos audio twilio genymotion

我在尝试从应用程序录制音频时遇到了一个有趣的问题(出于自动化目的):

我的系统是:

Mac mini OS X Yosemite
I'm running Genymotion 
VirtualBox with the following Audio settings:
Host Audio Driver: CoreAudio
Audio Controller: ICH AC97
Sound driver is Soundflower (Input Soundflower (2ch), Output Soundflower (2ch))

我正在使用Twilio通过我自己的客户端发起VoIP呼叫。 所以基本上我的流程是这样的:我在Genymotion上打开应用程序,打电话给某个人回答和说话的号码,这个声音从输出到Soundflower的输入,我在Audacity录制它(1声道单声道录音)。

此方案有效 - 所有其他通话或多或少都不会产生任何声音。几乎每一秒或第三次录音都是空的。

尝试确定我已完成以下问题:

  1. 在其他声音应用程序(如youtube)上播放Genymotion上的声音并在Audacity中录制 - 这总是有效。
  2. 我尝试使用Twilio演示应用程序进行调用(使用我自己的后端服务),这似乎也始终有效(来自我的客户端和他们的演示应用程序中的Twilio的jar文件)。
  3. 这让我相信这个问题与我的客户端应用程序有某种关系。

    当我打电话时声音有效我在adb logcat中看到了这一点:

    E/genymotion_audio(  464): get_next_buffer() pcm_read error -16
    E/genymotion_audio(  464): get_next_buffer() pcm_read error -16
    E/genymotion_audio(  464): get_next_buffer() pcm_read error -16
    E/genymotion_audio(  464): get_next_buffer() pcm_read error -16 
    

    当我接到一个声音不起作用的电话时我看到这个adb logcat:

    W/AudioFlinger(  464): write blocked for 10238 msecs, 2 delayed writes, thread 0xb58ba000
    

    当我搜索有关AudioFlinger错误时,似乎与有人试图以高采样率播放音频的情况有关,但我的情况有所不同,因为它是voip所以采样率可能是8khz。

    想知道是否有人遇到类似的问题/有任何关于如何进一步确定这个问题的想法吗?

    编辑:我尝试过的其他内容:

    1. Windows 8 + Genymotion - 使用Audacity进行相同的场景录制。 (Oracle VirtualBox Audio是HostDriver:Windows DirectSound和Controller:ICH AC97)。而不是Soundflower,我使用VB虚拟电缆驱动程序的Windows。 它完美无缺。

    2. 在Mac上 - 用WavTap驱动程序取代了Soundflower - 仍然是同样的问题。

0 个答案:

没有答案