我想使用 Flutter web 开始录制 von Mic(仅限,不需要移动支持)。使用 dart:html 一切都很顺利。
不,我转换为 package:web 但一切都充满错误。谁能帮我看看这里正确的称呼是什么?
import 'package:web/web.dart' as web;
然后...
我猜你的
_startRecording
应该是这样的:
Future<void> _startRecording() async {
print("Start Recording");
final mediaStream = await promiseToFuture<web.MediaStream>(web
.window.navigator.mediaDevices
.getUserMedia(web.MediaStreamConstraints(audio: true.toJS)));
final _mediaRecorder = web.MediaRecorder(
mediaStream,
web.MediaRecorderOptions(
mimeType: 'audio/webm', audioBitsPerSecond: 16000));
}
首先 – 需要使用
true
将 true.toJS
转换为 JSBoolean。然后使用 JSpromise
将 getUserMedia
(promiseToFuture
返回它)转换为 Future 并等待它。现在,在创建 MediaRecorder
时,mediaStream
将具有适当的类型。最后但并非最不重要的一点是,现在可以输入 MediaRecorderOptions
,因此您不仅可以传递 Map
,还可以传递选项本身。
祝你好运!