Android
AudioTrack
수색…
특정 주파수의 톤 생성
특정 톤의 사운드를 재생하려면 먼저 사인파 사운드를 만들어야합니다. 다음과 같은 방식으로 수행됩니다.
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 / note[0])); // Sine wave
buffer[i] = (short) (samples[i] * Short.MAX_VALUE); // Higher amplitude increases volume
}
이제 생성 된 버퍼에 따라 재생하도록 AudioTrack을 구성해야합니다. 그것은 다음과 같은 방식으로 행해진 다
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();
희망이 도움이 :)
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow