我有一个广播直播链接,当用户单击开始按钮时我需要录制该链接。然后,一旦用户单击“停止”,我需要将流保存到文件中。
我能够使用java成功地做到这一点,通过将数据作为字节数组读取并编写一个简单的while循环,声明只要数据不为空,就将字节写入数组,当它为空时,则将字节数组写入文件。下面我可以提供我在 Java 中使用过的代码片段。
URL url = new URL(radioStream);
inputStreamRecording = url.openStream();
fileOutputStreamRecording = new FileOutputStream(OutputSourceStream + "/temp.mp3");
recordingBuffer = inputStreamRecording.read();
while (recordingBuffer > -1) {
fileOutputStreamRecording.write(recordingBuffer);
recordingBuffer = inputStreamRecording.read();
}
Run Code Online (Sandbox Code Playgroud)
然而,我不知道如何在 dart/flutter 中做到这一点,并且找不到任何关于此的示例。所以我的问题是如何将上面的 Java 代码转换为可以在 Flutter 中使用的代码。我假设我会使用 Future,但是在录制点击事件期间如何停止 Future?任何帮助,将不胜感激。先感谢您!
var out = File('out.dat').openWrite();
var ss = Stream.periodic(3.seconds, (i) {
print('generating event #$i');
return 'line $i\n'.codeUnits;
})
.listen(out.add);
Future.delayed(15.seconds, () {
print('calling ss.cancel');
ss.cancel();
});
Run Code Online (Sandbox Code Playgroud)
这个答案非常接近我正在寻找的答案,以防其他人试图找到这个答案。所有功劳都归功于@pskink!
| 归档时间: |
|
| 查看次数: |
4050 次 |
| 最近记录: |