微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将音频 url 转换为 flutter web 中的文件?

如何解决如何将音频 url 转换为 flutter web 中的文件?

我正在使用麦克风包来录制语音Flutter 将音频存储了一段时间,我们可以将其作为音频 url 播放,但我需要将语音 url 以文件形式存储在 firebase 存储中。 听我的代码....

    void handleAudioState(AudioState state) {
        setState(() {
          if (audioState == AudioState.not) {
        // Starts recording
           try{
             _recorder.start();
             audioState = AudioState.recording;
       }
          catch(e){
           print(e.toString());
       }
        // Finished recording
      } 
         else if (audioState == AudioState.recording) {
         audioState = AudioState.play;
         _recorder.stop();
        // Play recorded audio
      } 
         else if (audioState == AudioState.play) {
         audioState = AudioState.stop;
         dynamic rec=_recorder.toBytes();
         print(rec.toString());
         // var file= File.fromrawPath(rec);
         //print(file);
         _audioPlayer=AudioPlayer();
         _audioPlayer.setUrl(_recorder.value.recording!.url).then((value){
          print(_recorder.value.recording!.url);
          return _audioPlayer.play().then((value){
            setState(() {
              audioState = AudioState.play;
            });
          });
        });
        // Stop recorded audio
      } else if (audioState == AudioState.stop) {
        audioState = AudioState.play;
        _audioPlayer.stop();
      }
    });
  }

 void handleAudioState(AudioState state) {
    setState(() {
      if (audioState == AudioState.not) {
        // Starts recording
       try{
         _recorder.start();
         audioState = AudioState.recording;
       }
       catch(e){
         print(e.toString());
       }
        // Finished recording
      } else if (audioState == AudioState.recording) {
        audioState = AudioState.play;
        _recorder.stop();
        // Play recorded audio
      } else if (audioState == AudioState.play) {
        audioState = AudioState.stop;
        dynamic rec=_recorder.toBytes();
        print(rec.toString());
       // var file= File.fromrawPath(rec);
       //print(file);
        _audioPlayer=AudioPlayer();
        _audioPlayer.setUrl(_recorder.value.recording!.url).then((value){
          print(_recorder.value.recording!.url);
          return _audioPlayer.play().then((value){
            setState(() {
              audioState = AudioState.play;
            });
          });
        });
        // Stop recorded audio
      } else if (audioState == AudioState.stop) {
        audioState = AudioState.play;
        _audioPlayer.stop();
      }
    });
  }

我正在使用以下软件包 just_audio: ^0.8.0 麦克风: 请让我知道如何做到这一点, 感谢期待

解决方法

您必须首先将录制的音频转换为字节, 然后使用 dart html 中存在的 File 类来创建文件;

import 'dart:html' as html;

final file = html.File(bytes,filename);

您可以上传然后将此文件上传到 Firebase 存储。 Firebase 存储还支持字节上传,因此您可以直接上传字节

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。