2015-02-04 22 views
7

Gibt es eine Möglichkeit, Audio auf Android Wear aufzunehmen? Ich habe AudioRecord API verwendet und es stürzt die Anwendung ab.Wie Audio auf Android Wear aufzunehmen

Mache ich etwas falsch?

 short[] audioData = new short[minBufferSize]; 

     AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 
       11025, 
       AudioFormat.CHANNEL_CONFIGURATION_MONO, 
       AudioFormat.ENCODING_PCM_16BIT, 
       minBufferSize); 

     audioRecord.startRecording(); 

     while(recording){ 
      int numberOfShort = audioRecord.read(audioData, 0, minBufferSize); 
      for(int i = 0; i < numberOfShort; i++){ 
       dataOutputStream.writeShort(audioData[i]); 
      } 
     } 

     audioRecord.stop(); 
+0

"Es stürzt die Anwendung ab" - Verwenden Sie LogCat, um die Java-Stack-Ablaufverfolgung, die mit dem Absturz verbunden ist, zu untersuchen: https://StackOverflow.com/questions/23353173/universe-myapp-has-stopped-how-cani-i- solve-this – CommonsWare

+0

Leider zeigt das LogCat keinen Fehler, die Anwendung stürzt einfach ab ohne Fehlermeldungen. Ich bin mir nicht sicher, ob der Android-Verschleiß Audio-Recorder unterstützt, möchte ich wissen, ob jemand es funktioniert hat. –

+0

Versuchte es vor ein paar Monaten, hatte ich ein Problem mit der Codierung, die den Medienrekorder zu starten verhindert. Habe es seither nicht mehr versucht, aber vielleicht, wenn du versuchst, die Codierung loszuwerden, könnte es funktionieren, wie jemand mir damals vorgeschlagen hat. – Snow

Antwort

6

AudioRecord wird unterstützt und funktioniert auf Android Wear. Wenn Sie auf einem Emulator testen, unterstützt er möglicherweise nicht die von Ihnen gelieferte Abtastrate, 11025, versuchen Sie es mit einer anderen wie 8000.

Nach der Erstellung von AudioRecord sollten Sie den Status überprüfen, um zu bestätigen, dass die Initialisierung erfolgreich war, bevor Sie versuchen, aufzuzeichnen.

audioRecord.getState() == AudioRecord.STATE_INITIALIZED 

Stellen Sie außerdem sicher, dass Sie über die richtigen Berechtigungen in dem Manifest verfügen. Sie benötigen mindestens android.permission.RECORD_AUDIO und alle Berechtigungen für den Speicherort, an dem Sie die Datei schreiben.

+2

Ich habe vergessen, Audio-Berechtigungen in Manifest zu setzen. Jetzt funktioniert es, danke. –

+0

Wie können Sie auf das aufgenommene Audio zugreifen? – Amir