收藏
回答

录制视频过程中调用takephoto,stopRecord就不会触发,是什么原因呢?

微信版本:8.0.13 IOS

在视频录制过程中,使用takephoto每8秒截取一帧,保存到本地,

开始录制,截屏都正常,但是点击结束录制后,没有触发stopRecord,把stopRecord里边的setData放在stopRecord外边,又可以执行,但是拿不到文件路径,无法保存到本地


console.log("开始录视频");

        this.setData({

          startRecord: true

        });

        // 倒计时

        let timeLoop = setInterval(() => {

          let t1 = this.data.time - 1;

          this.setData({

            time: t1,

          })

          // 最长录制

          if (t1 == 0) {

            clearInterval(timeLoop);

            this.stopRecord();

          }

        }, 1000);

        this.setData({

          timeLoop

        })

        // 开始录制

        ctx.startRecord({

          success: (res) => {

            console.log(res);

            //截屏

            let tick = () => {

              let ctx = wx.createCameraContext();

              ctx.takePhoto({

                success: (res) => {

                  console.log("截屏", res)

                  const savedFilePath = res.tempImagePath

                  // 保存到本地相册

                  wx.saveImageToPhotosAlbum({

                    filePath: savedFilePath,

                  })

                  wx.showToast({

                    icon: 'success',

                    title: '截屏保存成功',

                    duration: 1000

                  })

                },

                fail(err){

                  console.log("截屏错误",err);

                }

              })

            };

            if (this.data.catchImageLoop) {

              clearInterval(this.data.catchImageLoop);

              this.setData({

                catchImageLoop: null

              });

            }

            let catchImageLoop = setInterval(tick, 8000);

            this.setData({

              catchImageLoop

            });

          },

          fail: (e) => {

            console.log(e);

          }

        })

      } else {

        this.stopRecord();

      }



最后一次编辑于  2021-09-24
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容