【发布时间】:2017-10-04 21:46:51
【问题描述】:
我们正在通过 Android 的 SoundPool API 播放一个 wav 文件。我们创建了一个设备,可以将其中一个立体声通道通过麦克风循环回,而不是另一个。
我还应该提到,我们已经用计算机测试了我们的环回设备,并确认它可以正常工作。
但是,当我们尝试通过未环回麦克风的通道播放声音时,我们仍然在麦克风上“听到”来自该通道的声音。当我们插入耳机时,Android 似乎仍在向另一个通道发送一个更安静版本的单声道声音,即使它不应该这样做。
我们尝试过在一个通道上使用静音的立体声 WAV 文件,也尝试过单声道声音文件 - 两者的播放方式相同。谁能解释一下以及如何阻止它?我们使用的代码是:
_Pool = new SoundPool(3, Stream.Music, 0);
var beep = assets.OpenFd("beep.wav");
var beepId = _Pool.Load(beep, 1);
//later, after the sound is loaded we call:
_Pool.Play(beepId, 1, 0, 1, 0, 1);
我还应该提到,我们已经尝试了不同的音量级别(0.01 代替 0.0 和 0.99 代替 1.0)。我们还在多种测试设备上进行了尝试,包括 Google Pixel、三星 Note 和 LG。似乎没有任何效果。什么给了?
【问题讨论】: