खोज…


एक विशिष्ट आवृत्ति की टोन उत्पन्न करें

एक विशिष्ट स्वर के साथ ध्वनि बजाने के लिए, हमें सबसे पहले साइन वेव साउंड बनाना होगा। यह निम्नलिखित तरीके से किया जाता है।

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 = 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