Как записать звук на износ Android

Есть ли способ записать звук на износ Android? Я использовал AudioRecord API, и приложение вылетает.

Я что-то не так делаю?

        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();
7 голосов | спросил Leonardo Cartaxo 4 FebruaryEurope/MoscowbWed, 04 Feb 2015 15:28:08 +0300000000pmWed, 04 Feb 2015 15:28:08 +030015 2015, 15:28:08

1 ответ


0

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

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

audioRecord.getState() == AudioRecord.STATE_INITIALIZED

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

ответил BrentM 7 FebruaryEurope/MoscowbSat, 07 Feb 2015 04:23:06 +0300000000amSat, 07 Feb 2015 04:23:06 +030015 2015, 04:23:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132