rar*_*rar 7 audio android audiotrack
首先,我需要在运行中生成2个正弦波音,它们具有相同的频率,但相位相反,并且在Android上以立体声模式分别播放到右声道和左声道.播放需要完全同步,以便左右声道的正弦被"镜像"(当左声道具有时,例如,右声道的样本值120应该具有-120).
问题是我没有找到任何证据证明这种设置是如何工作的.是否AudioTrack可以分别和同时在左右声道中播放2个独立的音调/采样缓冲器?如果没有,那么实现最终结果的任何其他解决方案都非常受欢迎.
我想一个选择是使用预先生成的立体声波文件并使用这些文件进行流式处理AudioTrack,但这对于工作中的解决方案来说似乎太不灵活了.同时,如果AudioTrack能够以"真实"立体声模式播放这些预先录制的音频文件,我希望生成的声音也是可能的.
AudioTrack与SoundPool具有相同的方法.它打电话
AudioTrack.setStereoVolume();
如果您想使用不同的数据同时播放左/右声道.您应该处理数据以满足此目标.如果选择16Bit PCM的立体声模式,则数据左边为一个字节,右边为一个字节.例如:
左通道想玩:12,23,34,45
右声道要玩:54,43,32,21与左声道同时播放.
数据应生成为:{12,54,23,43,34,32,45,21}
然后,使用AudioTrack.write(数据).它将完美地满足您的目标.
好吧,这可能有效,因为只有两个样本。
首先检查SoundPool。当您有需要良好性能的曲目时,它非常有用,因为它们已完全加载到内存中。然而,这确实有其缺点,主要的一个是存储在存储器中的轨道的大小的限制。当我第一次使用它时,我尝试将 2 x 4Mb 文件放入流中 - 这不是一个好主意。
SoundPool有这个功能:
setVolume(int streamID, float leftVolume, float rightVolume)
Run Code Online (Sandbox Code Playgroud)
请注意如何设置每个流的左右音量?对于流 1,您可以设置最大左侧音量,然后对于流 2,设置最大右侧音量。
我会根据需要设置要播放的文件和音量的流,然后播放它们。
一个简单的教程可以在http://www.vogella.de/articles/AndroidMedia/article.html找到
| 归档时间: |
|
| 查看次数: |
8999 次 |
| 最近记录: |