2015-02-04 2 views
7

Есть какой-то способ записи звука на износ андроида? Я использовал AudioRecord API и сбой приложения.Как записывать аудио на износ для android

Я делаю что-то неправильно?

 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

«сбой приложения» - используйте LogCat для проверки трассировки стека Java, связанной с сбоем: https://stackoverflow.com/questions/23353173/unappro-myapp-has-stopped-how-can-i- solve-this – CommonsWare

+0

К сожалению, LogCat не показывает никаких ошибок, приложение просто выходит из строя без сообщений об ошибках. Я не уверен, что носитель android носит аудиорекордер, я хочу знать, если кто-нибудь заработал. –

+0

Пробовал несколько месяцев назад, у меня возникла проблема с кодировкой, которая помешала начать запись медиа-рекордера. С тех пор я не пробовал, но, может быть, если вы попытаетесь избавиться от кодирования, это может сработать, как мне тогда предложили. – Snow

ответ

6

AudioRecord поддерживается и работает на Android Wear. Если вы тестируете эмулятор, вы не можете поддерживать частоту дискретизации, которую вы подаете, 11025, попробуйте другой, например 8000.

После создания AudioRecord вы должны проверить состояние, чтобы подтвердить, что инициализация прошла успешно, прежде чем пытаться выполнить запись.

audioRecord.getState() == AudioRecord.STATE_INITIALIZED 

Также убедитесь, что у вас есть правильные разрешения в манифесте. Вам потребуется как android.permission.RECORD_AUDIO как минимум, а также любые разрешения для места, в котором вы пишете файл.

+2

Я забыл поставить аудио-разрешения в манифест. Теперь это работает, спасибо. –

+0

Как вы можете получить доступ к записанному аудио? – Amir

Смежные вопросы