public class MainActivity extends AppCompatActivity {
AudioTrack audioTrack;
Button bottone;
int minBufferSize=AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_8BIT);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottone=(Button)findViewById(R.id.button);
playSound(440,10);
}
private void playSound(double frequency, int duration) {
// AudioTrack definition
int mBufferSize = AudioTrack.getMinBufferSize(44100,
AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_8BIT);
AudioTrack mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100,
AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT,
mBufferSize, AudioTrack.MODE_STREAM);
// Sine wave
double[] mSound = new double[1000000];
short[] mBuffer = new short[1000000];
for (int i = 0; i < mSound.length; i++) {
mSound[i] = Math.sin((2.0*Math.PI * i/(44100/frequency)));
mBuffer[i] = (short) (mSound[i]*Short.MAX_VALUE);
}
mAudioTrack.setStereoVolume(AudioTrack.getMaxVolume(), AudioTrack.getMaxVolume());
mAudioTrack.play();
mAudioTrack.write(mBuffer, 0, mSound.length);
mAudioTrack.stop();
mAudioTrack.release();
}
}
Bene. Me lo salvo e poi vedrò come utilizzarlo.
Miei appunti liberi, senza pretesa di dire necessariamente sempre cose giuste o sensate, durante l'apprendimento e la pratica della programmazione
JavascriptProva
giovedì 17 novembre 2016
440 Hz audioTrack
Ecco il codice per l'emissione di un LA (440 Hz):
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento