Play Sound while Recording

All your problems with Audio, Video and Images.

Play Sound while Recording

Postby UniversalMind88 » Thu Dec 09, 2010 4:23 pm

Hello to all, i'm Francesco.

I'm trying to make a flute.
The game, if it detects the blow into the microphone, let we use the buttons with the notes.
If i click Notes buttons, It will play relative sounds
Unfortunately, crashes, what is the error?
Thank you all.

This is my code:
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package org.me.lap;
  2.  
  3. import android.app.Activity;
  4. import android.media.MediaRecorder;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.WindowManager;
  8. import android.widget.Button;
  9. import android.media.AudioFormat;
  10. import android.media.AudioRecord;
  11. import android.media.MediaPlayer;
  12.  
  13.  
  14. public class flute extends Activity
  15. {
  16.        
  17.         Button pulDO;
  18.         Button pulRE;
  19.         Button pulMI;
  20.         Button pulFA;
  21.         Button pulSOL;
  22.         Button pulLA;
  23.         Button pulSI;
  24.        
  25.         Button pulSTART;
  26.         Button pulSTOP;
  27.        
  28.         MediaPlayer mediaplayer;
  29.         AudioRecord ar;
  30.         boolean recorder=false;
  31.        
  32.        
  33.        
  34.         public void onCreate(Bundle savedInstanceState)
  35.         {
  36.                 super.onCreate(savedInstanceState);
  37.                 setContentView(R.layout.flute);
  38.                
  39.                 pulDO=(Button)this.findViewById(R.id.pulDO);  
  40.                 pulRE=(Button)this.findViewById(R.id.pulRE);
  41.                 pulMI=(Button)this.findViewById(R.id.pulMI);
  42.                 pulFA=(Button)this.findViewById(R.id.pulFA);
  43.                 pulSOL=(Button)this.findViewById(R.id.pulSOL);
  44.                 pulLA=(Button)this.findViewById(R.id.pulLA);
  45.                 pulSI=(Button)this.findViewById(R.id.pulSI);
  46.  
  47.                 pulSTART=(Button)this.findViewById(R.id.pulSTART);  //start button
  48.                 pulSTOP=(Button)this.findViewById(R.id.pulSTOP);  /stop button
  49.                
  50.  
  51.                 // IF I CLICK START BUTTON, START RECORDING
  52.                 pulSTART.setOnClickListener(new View.OnClickListener()
  53.                 {
  54.                         public void onClick(View v)  
  55.                         {
  56.                                 recorder=true;
  57.                                 registra();
  58.                         }
  59.             });
  60.         }
  61.        
  62.         void registra()
  63.         {      
  64.                 int minSize = AudioRecord.getMinBufferSize(8000,
  65.                                 AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
  66.                 ar = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000,
  67.                                 AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT,         minSize);
  68.                
  69.                 short[] buffer = new short[minSize];
  70.                
  71.                 ar.startRecording();
  72.                
  73.                 //IF I CLICK STOP BUTTON, I STOP RECORDING AND EXIT FROM THIS VIEW
  74.                 pulSTOP.setOnClickListener(new View.OnClickListener()
  75.                 {
  76.                         public void onClick(View v)
  77.                         {
  78.                                 if(recorder)
  79.                                 {
  80.                                         recorder=false;
  81.                                         ar.stop();
  82.                                         System.exit(0);
  83.                                 }
  84.                         }
  85.             });
  86.                
  87.                 while(recorder)
  88.                 {
  89.                         ar.read(buffer, 0, minSize);
  90.                     for (short s : buffer)
  91.                     {
  92.                         if (Math.abs(s) > 25000)   //DETECT VOLUME (IF I BLOW IN THE MIC)
  93.                         {
  94.  
  95.                                 pulDO.setOnClickListener(new View.OnClickListener()
  96.                                     {
  97.                                                 public void onClick(View v)
  98.                                                 {
  99.                                                         mediaplayer = MediaPlayer.create(flute.this, R.raw.fdo);                               
  100.                                                         mediaplayer.start();
  101.                                                 }
  102.                                     });
  103.                                        
  104.                                         pulRE.setOnClickListener(new View.OnClickListener()
  105.                                         {
  106.                                                 public void onClick(View v)
  107.                                                 {
  108.                                                         mediaplayer = MediaPlayer.create(flute.this, R.raw.fre);
  109.                                                         mediaplayer.start();
  110.                                                 }
  111.                                         });
  112.                                        
  113.                                         pulMI.setOnClickListener(new View.OnClickListener()
  114.                                         {      
  115.                                                 public void onClick(View v)
  116.                                                 {
  117.                                                         mediaplayer = MediaPlayer.create(flute.this, R.raw.fmi);
  118.                                                         mediaplayer.start();
  119.                                                 }
  120.                                         });
  121.                                        
  122.                                         pulFA.setOnClickListener(new View.OnClickListener()
  123.                                         {
  124.                                                 public void onClick(View v)
  125.                                                 {
  126.                                                         mediaplayer = MediaPlayer.create(flute.this, R.raw.ffa);
  127.                                                         mediaplayer.start();
  128.                                                 }
  129.                                         });
  130.                                                
  131.                                         pulSOL.setOnClickListener(new View.OnClickListener()
  132.                                         {
  133.                                                 public void onClick(View v)
  134.                                                 {
  135.                                                         mediaplayer = MediaPlayer.create(flute.this, R.raw.fsol);
  136.                                                         mediaplayer.start();
  137.                                         }      
  138.                                         });
  139.                                                
  140.                                         pulLA.setOnClickListener(new View.OnClickListener()
  141.                                         {
  142.                                                 public void onClick(View v)
  143.                                                 {
  144.                                                         mediaplayer = MediaPlayer.create(flute.this, R.raw.fla);
  145.                                                         mediaplayer.start();
  146.                                                 }
  147.                                         });
  148.                                        
  149.                                         pulSI.setOnClickListener(new View.OnClickListener()
  150.                                         {
  151.                                                 public void onClick(View v)
  152.                                                 {
  153.                                                         mediaplayer = MediaPlayer.create(flute.this, R.raw.fsi);
  154.                                                         mediaplayer.start();
  155.                                                 }
  156.                                         });    
  157.                         }
  158.                     }
  159.                 }
  160.                 ar.stop();
  161.         }
  162. }
Parsed in 0.047 seconds, using GeSHi 1.0.8.4
UniversalMind88
Once Poster
Once Poster
 
Posts: 1
Joined: Thu Dec 09, 2010 12:44 pm

Top

Return to Multimedia Problems

Who is online

Users browsing this forum: No registered users and 18 guests