2017-02-03 7 views
0

У меня возникла проблема с тем, что при нажатии кнопки я начинаю записывать аудио в приложении для Android, но когда я воспроизвожу записанный звук, у вас не хватает некоторой продолжительности записанного звука.Звук, записанный при нажатии кнопки, не хватает какой-либо длительности на моем устройстве Android.

Вот мой фрагмент код, чтобы начать запись голоса на сенсорной кнопку задается:

public void start() { 

    myRecorder = new MediaRecorder(); 
    myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); 
    myRecorder.setOutputFile(outputFile); 

    try { 
     myRecorder.prepare(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    myRecorder.start(); 
    text.setText("Recording point: Recording..."); 

} 

обнаруживаемого сенсорное события я начинаю призывающий эту старта(); функция. Может ли любой орган сказать мне альтернативное решение? Я столкнулся с этой проблемой на устройстве Android sroid s3.

ответ

1
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); 
myRecorder.setOutputFile(outputFile); 

Кусок кода выше занимает некоторое время, следовательно, задержка между нажатием пользователем кнопки (start() который вызывается) и записывающее устройство на самом деле начала записи (myRecorder.start()).

Вы должны инициализировать рекордер и подготовить его до нажатия кнопки. Просто переместите вышеуказанный фрагмент кода в другом месте, например. onCreate(). Поскольку я не знаю контекста этого кода, я не могу точно сказать, где именно.