我如何在android 5中播放旋律,比如440‘s,480’s,500‘s,440’s?其他系统也有一些东西。比如"sound(440)“。或者我必须用AudioTrack合成它?
发布于 2017-02-27 13:37:41
是的,正如@zed指出的那样,你必须使用AudioTrack来合成它。
这里有一些代码可以帮助你
final static double scale = 1;
final static int duration = 50; // Seconds
final static int sampleRate = 22050; // Hz (maximum frequency is 7902.13Hz (B8))
final static int numSamples = duration * sampleRate;
final static double samples[] = new double[numSamples];
final static short buffer[] = new short[numSamples];
double note = scale * frequency;
for (int i = 0; i < numSamples; ++i)
{
samples[i] = Math.sin(2 * Math.PI * i / (sampleRate / note)); // Sine wave
buffer[i] = (short) (samples[i] * Short.MAX_VALUE); // Higher amplitude increases volume
}
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);https://stackoverflow.com/questions/42175002
复制相似问题