Flutter не может воспроизводить звук во время записиAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Flutter не может воспроизводить звук во время записи

Сообщение Anonymous »

Я создаю приложение для слухового аппарата на флаттере для тех, кто не слышит должным образом. Идея заключается в том, что звук заключается в том, что пользователь микрофона может изменить его частоту, изменить другие настройки с помощью ползунка или чего-то еще, а динамик воспроизведет этот звук с обработанным звуком. настройки, проблема, с которой я столкнулся, заключается в том, что сначала записывается звук, а затем воспроизводится, как я это делаю, чтобы он напрямую воспроизводил звук с микрофона на динамик, динамик может быть на мобильном телефоне или гарнитуре.
Я ожидаю для воспроизведения звука вместе с микрофоном.
import 'dart:async';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter_sound/flutter_sound.dart';
import 'package:permission_handler/permission_handler.dart';

class VoiceChanger extends StatefulWidget {
@override
_VoiceChangerState createState() => _VoiceChangerState();
}

class _VoiceChangerState extends State {
late final StreamController _audioStreamController;

FlutterSoundRecorder? _recorder;
FlutterSoundPlayer? _player;
bool isRecording = false;
bool isPlayingBack = false;

@override
void initState() {
super.initState();
_recorder = FlutterSoundRecorder();
_player = FlutterSoundPlayer();
_audioStreamController = StreamController();
initAudio();
}

Future initAudio() async {
await _recorder!.openRecorder();
await _player!.openPlayer();
await _player!.setVolume(1.0);
}

Future startRecording() async {
if (await Permission.microphone.request().isGranted) {
// Start recording to a stream
await _recorder!.startRecorder(
toStream: _audioStreamController.sink,
codec: Codec.pcm16,
);

// Listen to the stream and play audio data in real-time
_audioStreamController.stream.listen((data) async {
// Ensure playback continues smoothly
if (!isPlayingBack) {
isPlayingBack = true;
await _player!.startPlayer(
fromDataBuffer: data,
codec: Codec.pcm16,
whenFinished: () {
isPlayingBack = false; // Set playing flag to false when finished
},
);
} else {
// Feed the new audio data to the player without interruption
await _player!.feedFromStream(data);
}
});

setState(() {
isRecording = true;
});
} else {
print("Microphone permission is not granted");
}
}

Future stopRecording() async {
await _recorder!.stopRecorder();
setState(() {
isRecording = false;
isPlayingBack = false; // Stop playback
});
}

@override
void dispose() {
_recorder?.closeRecorder();
_player?.closePlayer();
_audioStreamController.close(); // Ensure stream is closed
super.dispose();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Voice Changer'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: isRecording ? stopRecording : startRecording,
child: Text(isRecording ? 'Stop Recording' : 'Start Recording'),
),
],
),
),
);
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... -recording
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Flutter не может воспроизводить звук во время записи
    Anonymous » » в форуме Android
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как воспроизводить звук через наушник на iOS и Android во Flutter
    Anonymous » » в форуме Android
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как воспроизводить звук через наушник на iOS и Android во Flutter
    Anonymous » » в форуме IOS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • JAVA — воспроизводить звук каждый раз, когда к метке добавляется буква.
    Гость » » в форуме JAVA
    0 Ответы
    74 Просмотры
    Последнее сообщение Гость
  • MediaSession не может воспроизводить звук в Android 10 и выше
    Anonymous » » в форуме Android
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»