1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. rollobollo, 11.02.2011 #1
    rollobollo

    rollobollo Threadstarter Neuer Benutzer

    Hallo zusammen,

    ich möchte eine App entwickeln, die auf KLATSCH oder KNALL Geräusche reagiert, bzw. diese Zählt.
    Dazu ist es notwendig auf das Mikro zu zu greifen. Ich habe aber bisher nur Funktionen für das Mikro gefunden die eine Audio Datei aufnehemen.

    Gibt es eine Möglichkeit den aktuellen Wert (lautstärke Pegel) aus zu lesen und aus zuwerten ? Quasi eine Funktion die mir einen Byte Wert der aktuellen Lautstärke vom Mikro zurück gibt ? Brauch ja auch nich so genau sein.. will ja nichts genaues messen.

    Wenn ich zuerst eine Audio Datei aufneheme und diese dann im anschluss auswerte befürchte ich, dass ich eventuell einen KNALL verpassse während des Auswertvorgangs...

    Hat jemand eine gute Idee dazu ?
     
  2. rollobollo, 11.02.2011 #2
    rollobollo

    rollobollo Threadstarter Neuer Benutzer

    So habe jetzt nach langem hin und her den unten stehenden Code zusammen bekommen und das Mikro schreibt auch Werte in den buffer. Da ich leider nicht der Java Pro bin(wie man an dem Programm bestimmt auch sieht) weiß ich leider nicht, wie ich jetzt den buffer, den ich an auswerten(buffer) übergebe auswerten kann.. Immer wenn ich auf einzhelne short element zugreifen will, stopt das Mikro...

    Wie kann ich jetzt den buffer der laufen beschrieben wird auswerten al a if (buffer[xy] > 200 ) tue dies und das ?

    ich verstehe den code leider auch nicht ganz,was wird hier gemacht, bzw erzeugt ?:

    short[][] buffers = new short[256][160];

    und

    short[] buffer = buffers[ix++ % buffers.length];
    N = recorder.read(buffer, 0, buffer.length);



    Code:
    public class Main extends Activity implements Runnable, OnClickListener {
    
    	boolean stopped = false;
    
    	private TextView tv;
    	private String wert = null;
    	int lauf =0;
    	
    	private Button button_stop;
    
    	private static Handler handler;
    
    	/** Called when the activity is first created. */
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		tv = (TextView) this.findViewById(R.id.Wert);
    		
    		button_stop = (Button) findViewById(R.id.button_stop);
    		button_stop.setOnClickListener(this);
    		
    		Thread thread = new Thread(this);
    		thread.start();
    		beginneThread();
    	}
    
    	public void run() {
    		Looper.prepare();
    		
    		handler = new Handler() { // (2)
    			public void handleMessage(Message msg) {
    				
    				android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
    				
    				AudioRecord recorder = null;
    				short[][] buffers = new short[256][160];
    				int ix = 0;
    
    				try { // ... initialise
    					int N = AudioRecord.getMinBufferSize(8000,
    							AudioFormat.CHANNEL_CONFIGURATION_MONO,
    							AudioFormat.ENCODING_PCM_16BIT);
    					Log.e("AudioRecord", "Recorder initialisiert");
    
    					recorder = new AudioRecord(AudioSource.MIC, 8000,
    							AudioFormat.CHANNEL_CONFIGURATION_MONO,
    							AudioFormat.ENCODING_PCM_16BIT, N * 10);
    					recorder.startRecording();
    					
    					Log.e("AudioRecord", "Recording startet");
    					
    					// ... loop
    					while (!stopped) {
    						short[] buffer = buffers[ix++ % buffers.length];
    						N = recorder.read(buffer, 0, buffer.length);
    						auswerten(buffer);
    					}
    				} catch (Throwable x) {
    					Log.e("AudioRecord", "Recording Failed");
    				}
    				finally { 
    		           	recorder.stop();
    		           	Log.e("AudioRecord", "Recording stopt");
    		    	}
    			}
    		};
    		Looper.loop(); // (3)
    	}
    
    	public void auswerten(short[] buffer){
    		
    	}
    
    	public static void beginneThread() {
    		handler.sendEmptyMessage(0); // (4)
    	}
    
    	public void beendeThread() {
    		stopped=true;
    		handler.getLooper().quit(); // (5)
    	}
    
    	@Override
    	public void onClick(View v) {
    		if(v == button_stop){
    			beendeThread();
    			finish();
    		}
    		
    	}
    
    }
    
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] App Leitfaden gesucht! Android App Entwicklung Dienstag um 21:17 Uhr
[OFFEN] Welches Intent erzeugt der Klick im Homescreen auf das Icon einer App? Android App Entwicklung Dienstag um 13:59 Uhr
[OFFEN] Logdateien der eigenen App Android App Entwicklung 15.06.2017
[ERLEDIGT] Kleine Probleme mit einer App Android App Entwicklung 14.06.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[Meinung] Spezielle App für Mittelstand erstellen (lassen) Android App Entwicklung 23.05.2017
[ERLEDIGT] put in HashMap bringt App zum abstürzen Android App Entwicklung 22.05.2017
[ERLEDIGT] *.viivo kann keiner App zugeordnet werden - MANIFEST.XML ? Android App Entwicklung 19.05.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[GESCHLOSSEN] Android Studio -> Telefongespräch über App Android App Entwicklung 16.05.2017

Users found this page by searching for:

  1. android mikrofon auslesen

    ,
  2. gibt es eine app die auf klatschen reagiert?

Du betrachtest das Thema "Laufende Lautstärke Werte vom Mikrofon auslesen(Klatsch App)" im Forum "Android App Entwicklung",