JavascriptProva

venerdì 18 marzo 2016

Codice sicuramente funzionante per l'AudioRecord

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();
 }
}

Nessun commento:

Posta un commento