public class MainActivity extends Activity{
Button button;
Button button2;
boolean isRecording;
AudioRecord audioRecord;
int audioSource=AudioSource.MIC;
int sampleRate=44100;
int channelConfig=AudioFormat.CHANNEL_IN_STEREO;
int audioFormat=AudioFormat.ENCODING_PCM_16BIT;
int bufferSize=AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);
//AudioTrack audioTrack=new AudioTrack(AudioManager.STREAM_MUSIC,sampleRate,channelConfig,audioFormat,bufferSize,AudioTrack.MODE_STATIC);
short[] buffer=new short[(bufferSize/2)];
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("Buffer size",bufferSize+"");
Log.v("Length", buffer.length+"");
for(int i=0;i<bufferSize/2;i++){
Log.v(i+"", buffer[i]+"");
}
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
azione();
}
});
button2=(Button)findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isRecording=false;
audioRecord.stop();
audioRecord.release();
audioRecord=null;
Log.v("spento", "SPENTO");
//ULTIMA MODIFICA--------------------------------
for(int i=0;i<bufferSize/2;i++){
Log.v(i+"", (short)buffer[i]+"");
}
}
});
}
public void azione(){
audioRecord=new AudioRecord(audioSource,sampleRate,channelConfig,audioFormat,bufferSize/2);
audioRecord.startRecording();
isRecording=true;
Thread thread=new Thread(new Runnable(){
@Override
public void run() {
while(isRecording){
int rd=audioRecord.read(buffer, 0, bufferSize/2);
}
}
});
thread.start();
}
}
Miei appunti liberi, senza pretesa di dire necessariamente sempre cose giuste o sensate, durante l'apprendimento e la pratica della programmazione
JavascriptProva
venerdì 18 marzo 2016
Codice sicuramente funzionante per l'AudioRecord
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento