android - Android AudioTrack 生成缓冲区,其中一只耳朵有一个频率,另一只耳朵有第二个频率
问题描述
我在 android 上生成音调
public void toneer(){
final int duration = 10; // duration of sound
final int sampleRate = 22050; // Hz (maximum frequency is 7902.13Hz (B8))
final int numSamples = duration * sampleRate;
final double samples[] = new double[numSamples];
final short buffer[] = new short[numSamples];
for (int i = 0; i < numSamples; ++i)
{
samples[i] = Math.sin(2 * Math.PI * i / (sampleRate / 440)); // Sine wave
buffer[i] = (short) (samples[i] * Short.MAX_VALUE); // Higher amplitude increases volume
}
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT, buffer.length,
AudioTrack.MODE_STATIC);
audioTrack.write(buffer, 0, buffer.length);
audioTrack.play();
}
我已经看到一些地方在讨论是否可以让缓冲区在右侧的左侧发出声音?
我的问题是:如何产生“双耳”节拍,一只耳朵一个频率,而另一只耳朵播放另一个音调?
解决方案
推荐阅读
- user-interface - wxPython dirpickerctrl 文本框出现在它自己的浏览按钮上
- r - 将制表符分隔的字符串转换为数据框
- python - python:将符号特征函数的向量转换为评估函数的矩阵
- java - Spring boot CLIENT_PLUGIN_AUTH is required
- unit-testing - Crowdsale OpenZeppelin 合约中的 buyTokens 功能不适用于 msg.value 大于零
- python - Python:加入/合并具有重叠但不同日期索引的数据帧
- python - 将有限的 Laurent 级数(一个 Laurent 多项式)表示为字典
- java - ORA-00932: 不一致的数据类型: 预期 SYS.AQ$_JMS_TEXT_MESSAGE 得到 SYS.AQ$_JMS_TEXT_MESSAGE
- angular - 如何以编程方式单击材质元素?
- javascript - Vue 在数据属性中使用计算的属性值?