Flutter (Dart): получение / запись аудиопотока с микрофона и немедленное воспроизведение (в реальном времени)

Мне нужно иметь возможность захватывать поток звука с микрофона, а затем передавать его в качестве аргумента или сразу же читать, чтобы воспроизвести его как звук. Для реализации этого в любом другом фреймворке есть отличные инструменты и функции, которые вы можете использовать, но мне нужно заархивировать эти функции во Flutter.

Любая помощь или предложения?


person oetoni    schedule 25.09.2018    source источник
comment
Ознакомьтесь с audio_recorder и audioplayer.   -  person Kirollos Morkos    schedule 25.09.2018
comment
привет @KirollosMorkos, я играл с этим medcorder_audio, но спасибо за ваши рекомендации! Я постараюсь обновить сообщение здесь с любым исходом   -  person oetoni    schedule 26.09.2018
comment
@oetoni ты что-нибудь нашел. Я работаю над сборщиком видеозвонков, поэтому хочу переключить звук на громкую связь   -  person Jigar Fumakiya    schedule 18.04.2019
comment
Привет, @Jigar, но нет, потому что я был в отпуске, но я планирую закончить это задание на этих выходных. Я обязательно отвечу здесь   -  person oetoni    schedule 18.04.2019
comment
спасибо Дай мне знать @oetoni   -  person Jigar Fumakiya    schedule 18.04.2019
comment
Есть какой-нибудь пакет для Flutter Web?   -  person Shashwat Aditya    schedule 22.03.2020
comment
Привет, Вы нашли решение для этого?   -  person Nirav Patel    schedule 02.10.2020
comment
Посмотрите этот пример библиотеки flutter_sound: github.com/ dooboolab / flutter_sound / blob / master / flutter_sound /   -  person GabrieleG    schedule 13.11.2020


Ответы (1)


Пожалуйста, попробуйте этот пакет flutter_sound.
https://github.com/dooboolab/flutter_sound
Ссылка для справки < br> https://medium.com/flutterpub/flutter-sound-plugin-audio-recorder-player-e5a455a8beaf

Создание экземпляра.

FlutterSound flutterSound = new FlutterSound();

Запуск рекордера со слушателем.

String path = await flutterSound.startRecorder(null);
print('startRecorder: $path');

_recorderSubscription = flutterSound.onRecorderStateChanged.listen((e) {
  DateTime date = new DateTime.fromMillisecondsSinceEpoch(e.currentPosition.toInt());
  String txt = DateFormat('mm:ss:SS', 'en_US').format(date);
});

Остановить рекордер

String result = await flutterSound.stopRecorder();
print('stopRecorder: $result');

if (_recorderSubscription != null) {
    _recorderSubscription.cancel();
    _recorderSubscription = null;
}

Начать плейер

String path = await flutterSound.startPlayer(null);
print('startPlayer: $path');

_playerSubscription = flutterSound.onPlayerStateChanged.listen((e) {
    if (e != null) {
        DateTime date = new DateTime.fromMillisecondsSinceEpoch(e.currentPosition.toInt());
        String txt = DateFormat('mm:ss:SS', 'en_US').format(date);
        this.setState(() {
            this._isPlaying = true;
            this._playerTxt = txt.substring(0, 8);
        });
    }
});
person chunhunghan    schedule 06.06.2019