JavascriptProva

giovedì 17 marzo 2016

Riproduzione di un file wav con Android mediante AudioTrack

Ho riprodotto un file WAV con AudioTrack, ottenendo anche qualche informazione in più sul sample rate.
public class MainActivity extends Activity{
 
 AudioTrack audioTrack;
 Button bottone;
 int minBufferSize=AudioTrack.getMinBufferSize(10000, 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.button1);
  audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 10000, AudioFormat.CHANNEL_IN_STEREO, 
                AudioFormat.ENCODING_PCM_8BIT, minBufferSize, AudioTrack.MODE_STREAM); 
 
  bottone.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    playSound();
    
   }
  }); 
 }
 
 public void playSound(){
  
  audioTrack.play(); 
  int i=0;
  int bufferSize=512;
  final byte[] buffer=new byte[bufferSize];
  
  final InputStream inputStream=getResources().openRawResource(R.raw.vaffanculo);
  
  
       try {
        
           while((i = inputStream.read(buffer)) > -1)
               audioTrack.write(buffer, 0, i);
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       try {
           inputStream.close();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
    
   
   
  }
  

 
  
 
}

Nessun commento:

Posta un commento