#android #flutter #dart #webrtc
Вопрос:
Я пытался записать поток WebRTC с помощью библиотеки flutter_webrtc-0.6.3. Запись видео работает отлично, но запись с указанным аудиоканалом (ВХОДНЫМ или выходным), похоже, приводит к сбою моего приложения. Интересно, что при создании сеанса с приемником(ами) приложение не вылетает, но выходной файл содержит видео только на время сеанса.
Код для начала записи
final localStream = await mediaRepository.createLocalStream();
await recorder.start(
'/storage/emulated/0/Movies/${Uuid().v4().toString()}.mp4',
videoTrack: localStream.getVideoTracks().first,
audioChannel: RecorderAudioChannel.INPUT);
Функция mediaRepository.createLocalStream()
Future<MediaStream> createLocalStream() async {
MediaStream? localStream = _localStream;
if (localStream != null) {
return localStream;
}
localStream = await navigator.mediaDevices.getUserMedia({
'audio': true,
'video': {
'mandatory': {
'minWidth': '640',
'minHeight': '480',
'minFrameRate': '30',
},
'facingMode': 'environment',
'optional': [],
}
});
_localStream = localStream;
return localStream;
}
Код для остановки записи
await recorder.stop();
await mediaRepository.closeLocalStream();
Функция mediaRepository.closeLocalStream()
Future<void> closeLocalStream() async {
final localStream = _localStream;
_localStream = null;
await localStream?.dispose();
}
выход доктора флаттера:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.2.2, on Microsoft Windows [Version 10.0.18363.1440])
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[!] Android Studio (not installed)
[√] IntelliJ IDEA Ultimate Edition (version 2021.1)
[√] Connected device (2 available)