我正在使用 flutter 和GetX,所以我Obx在我的代码中实现。
我有3个文件:
questionnaire.dart
questionnnaire_controller.dart
popup.dart
在里面popup.dart我有弹出窗口的布局。
在里面questionnaire.dart我有显示弹出窗口内容的代码,该弹出窗口显示要回答的调查问卷。
在里面questionnaire_controller.dart我有一些使用的变量和函数,比如getQuestionnaires()异步获取调查问卷数据的函数,或者 list ,或者保存已选择的调查问卷实例的questionnaires变量。selectedQuestionnaire
如果已选择调查问卷,则必须在弹出对话框的顶部popup.dart显示调查问卷的标题。部分代码如下:
static Future<void> showQuestionnaireInput({String title, Widget child, Widget icon}) async {
bool mobileSize = Get.size.width <= ResponsiveSizingConfig.instance.breakpoints.desktop;
if (mobileSize) {
await Get.to(InputScreenWidget(child, title));
} else {
await showDialog(
context: Get.context,
builder: (context) {
return AlertDialog(
titlePadding: EdgeInsets.all(8),
contentPadding: EdgeInsets.all(8),
title: Container(
decoration: BoxDecoration(border: Border(bottom: BorderSide(color: Colors.grey.shade200, width: 2))),
child: Row(
mainAxisAlignment: …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 nodeJS 服务器上创建照片捕获 Web 应用程序,并且我正在使用下面的javascript代码。
const btn = document.querySelector('#btn');
btn.addEventListener('click', (event) => {
navigator.mediaDevices.getUserMedia({video: true})
.then(gotMedia)
.catch(error => console.error('getUserMedia() error:', error));
event.preventDefault()
})
Run Code Online (Sandbox Code Playgroud)
而gotMedia函数是这样的:
function gotMedia(mediaStream) {
const mediaStreamTrack = mediaStream.getVideoTracks()[0];
const imageCapture = new ImageCapture(mediaStreamTrack);
console.log(imageCapture);
const canvas = document.querySelector('canvas');
// ...
imageCapture.grabFrame()
.then(imageBitmap => {
canvas.width = imageBitmap.width;
canvas.height = imageBitmap.height;
canvas.getContext('2d').drawImage(imageBitmap, 0, 0);
})
.catch(error => console.error('grabFrame() error:', error));
}
Run Code Online (Sandbox Code Playgroud)
一切正常,图像捕捉正常,但是当我一张又一张地快速拍摄照片时,出现错误,提示:
grabFrame() 错误:DOMException:关联的 Track 处于无效状态。
当我拍摄太多照片时(例如快速单击约 20 秒以上),通常会发生这种情况,但前五张快照也会发生这种情况。有谁知道发生了什么事以及我应该改变什么才能解决这个问题?感谢您的时间。