#flutter #audio #stream #webrtc #record
Вопрос:
Я использую плагин flutter-webrtc и хотел бы записывать как локальные, так и удаленные аудиопотоки. Есть ли у меня какой-нибудь способ получить звуковые буферы из медиапотоков? Я пробовал использовать аудиофайлерендерер в ветке единого плана. В функции начальной записи MediaRecorderImpl.java, Я указал путь к хранилищу файлов, например «хранилище/эмулировано/0/Android/данные», файл успешно создается каждый раз, когда я заканчиваю вызов, но файл записи поврежден, поэтому его невозможно воспроизвести. Никаких ошибок, исходящих от терминала, нет. Я использую flutter v1.22.6 и разветвил flutter-webrtc с версии 0.5.8. Я добавил файл аудиофайлера в flutter-webrtc 0.5.8, мой код выглядит следующим образом:
public void startRecording(File file) throws Exception {
recordFile = file;
if (isRunning)
return;
isRunning = true;
//noinspection ResultOfMethodCallIgnored
file.getParentFile().mkdirs();
if (videoTrack != null) {
System.out.println("try123 1");
videoFileRenderer = new VideoFileRenderer(
file.getAbsolutePath(),
EglUtils.getRootEglBaseContext(),
audioInterceptor != null
);
videoTrack.addSink(videoFileRenderer);
if (audioInterceptor != null)
audioInterceptor.attachCallback(id, videoFileRenderer);
} else {
Log.e(TAG, "Video track is null");
if (audioInterceptor != null) {
//TODO(rostopira): audio only recording
// throw new Exception("Audio-only recording not implemented yet");
Log.d(TAG, "Try to use onWebrtcSamplesReady");
audioFileRenderer = new AudioFileRenderer(file);
audioInterceptor.attachCallback(id, audioFileRenderer);
}
}
}
Любая помощь будет признательна! Спасибо!
Ответ №1:
Я также ищу то же самое решение, но пока ничего не найдено.
Итак, я использую webview для части RTC (связь и запись), сохраняя при этом обмен сообщениями Firebase и источник событий/SSE (я не использую сокет) в Flutter.
Это не прямой ответ на ваш вопрос, просто предоставление альтернативного решения, это лучше, чем вообще не иметь решения, вероятно, в будущем, когда flutter RTC обновится и будет поддерживать только запись голоса, мы сможем обновить приложения, которые мы разрабатываем.
Комментарии:
1. Спасибо за предоставление альтернативного решения. Надеюсь, что flutterwebrtc скоро предоставит решение для записи только аудио!