小编we_*_*mor的帖子

Flutter:构建期间调用 setState() 或 markNeedsBuild()。使用 future Builder 和 obx

我正在使用 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)

flutter flutter-web flutter-getx

7
推荐指数
1
解决办法
1万
查看次数

Javascript DOMException:关联的 Track 处于无效状态

我正在尝试在 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 秒以上),通常会发生这种情况,但前五张快照也会发生这种情况。有谁知道发生了什么事以及我应该改变什么才能解决这个问题?感谢您的时间。

javascript domexception mediadevices

5
推荐指数
2
解决办法
4965
查看次数