繁体   English   中英

是否可以用 flutter 录制音频 output?

[英]Is it possible to record the audio output with flutter?

我想用 flutter 构建一个录音机,但我似乎找不到任何方法来记录从设备播放的音频而不是麦克风本身。 有什么办法可以做到这一点吗?

https://pub.dev/packages/flutter_audio_recorder

https://pub.dev/packages/audioplayers

这两个包对于在 flutter 中实现音频重新编码和播放很有用。

这是一些代码参考 -

  bool isRecordingStarted = false;
  bool isPlaying = false;
  FlutterAudioRecorder _recorder;
  Recording _recording;
  Timer _t;
  var recordedAudio;
  RecordingStatus _currentStatus = RecordingStatus.Unset;
  IconData _recordIcon = Icons.mic_none;
  Duration _duration;
  Duration _position;

  Future _startRecording() async {
    await _recorder.start();
    var current = await _recorder.current();
    setState(() {
      _recording = current;
    });

    _t = Timer.periodic(Duration(milliseconds: 10), (Timer t) async {
      var current = await _recorder.current();
      setState(() {
        _recording = current;
        _t = t;
      });
    });
  }

  Future _stopRecording() async {
    var result = await _recorder.stop();
    _t.cancel();

    setState(() {
      // _recording = result;
      _recording = new Recording();
    });
    print("_recording.path : ${result.path}");
    setState(() {
      recordedAudio = result.path;
    });
    // Navigator.pushNamed(context, Screen.AudioPostingView.toString(),
    //     arguments: {"audioUrl": result.path});
  }

///用于音频播放

 playLocal() async {
    int result = await advancedPlayer.play(recordedAudio, isLocal: true);
    // setState(() => playerState = PlayerState.playing);
  }

  @override
  void initState() {
    // getLastPost();
    _init();
    _loadRiveFile();
    _prepare();
    _getDuration();
    // startTimer();

    advancedPlayer.onDurationChanged
        .listen((d) => setState(() => _duration = d));
    // _initAudioPlayer();
    super.initState();
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM