如何解决如何将音频 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 举报,一经查实,本站将立刻删除。