1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung 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
Android App mit Raspberry Pi über Bluetooth verbinden Android App Entwicklung Gestern um 14:20 Uhr
Integer-Wert übertragen auf zweite Activity Android App Entwicklung Freitag um 15:59 Uhr
[OFFEN] APP Baukasten oder individuell? Android App Entwicklung 10.11.2017
[OFFEN] Feedback Text für die App auf Server Hochladen Android App Entwicklung 28.10.2017
[OFFEN] Android app selber entwickeln mit Bluetooth Android App Entwicklung 13.10.2017
[ERLEDIGET] App über href starten Android App Entwicklung 28.09.2017
[OFFEN] Kostenpflichtige App für Beta-Test hochladen Android App Entwicklung 13.09.2017
[OFFEN] App startet nicht... Android App Entwicklung 10.09.2017
[OFFEN] Sind Notifications in einer Webview App möglich? Android App Entwicklung 10.09.2017

Benutzer fanden diese Seite durch die Suche nach:

  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",