小编Jag*_*gar的帖子

如何使用 CameraX 捕获视频而不将输出保存到图库?

我正在按照官方文档使用 CameraX 捕获视频,并且我想避免将捕获的视频保存在图库中。
现在我正在处理文档代码的这一部分:

// Create MediaStoreOutputOptions for our recorder
val name = "CameraX-recording-" +
        SimpleDateFormat(FILENAME_FORMAT, Locale.US)
                .format(System.currentTimeMillis()) + ".mp4"
val contentValues = ContentValues().apply {
   put(MediaStore.Video.Media.DISPLAY_NAME, name)
}
val mediaStoreOutput = MediaStoreOutputOptions.Builder(this.contentResolver,
                              MediaStore.Video.Media.EXTERNAL_CONTENT_URI)
                              .setContentValues(contentValues)
                              .build()

// 2. Configure Recorder and Start recording to the mediaStoreOutput.
val recording = videoCapture.output
                .prepareRecording(context, mediaStoreOutput)
                .withAudioEnabled()
                .start(ContextCompat.getMainExecutor(this), captureListener)
Run Code Online (Sandbox Code Playgroud)

我注意到prepaeRecording()可以采用FileOutputOptions而不是MediaStoreOutput,所以我认为它可能是我应该工作的地方,但我没有找到任何 FileOutputOptions 和 CameraX 的示例,而且我希望它能够使用范围权限。
那可能吗?您能举个例子来避免将视频保存到图库吗?

android kotlin android-camerax

5
推荐指数
1
解决办法
2042
查看次数

如何使用 mongoose 在 updateOne 中使用 $cond ?

我想根据其先前的值更新 mongodb 中的值,如果null(保存为字符串)那么我会将其更新为新值,否则我想保持原样。
这是我的代码:

User.updateOne({_id: user._id}, {$set: {
                        deviceId: {$cond: [{$eq: ['null']}, req.body.deviceId, 'null']}
                    }}, null, function (err, res){
                    if (err){
                        return done(err)
                    }else{
                        return done(null, user)
                    }
                })
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误(我相信这表明我的语法不正确):

CastError: Cast to string failed for value "{ '$cond': [ { '$eq': [Array] }, 'MYDEVICEID', 'null' ] }" (type Object) at path "deviceId"
    at model.Query.exec (D:\X_APP\XAPP_BACKEND\node_modules\mongoose\lib\query.js:4478:21)
    at _update (D:\X_APP\XAPP_BACKEND\node_modules\mongoose\lib\query.js:4330:11)
    at model.Query.Query.updateOne (D:\X_APP\XAPP_BACKEND\node_modules\mongoose\lib\query.js:4229:10)
    at _update (D:\X_APP\XAPP_BACKEND\node_modules\mongoose\lib\model.js:3834:16)
    at Function.updateOne (D:\X_APP\XAPP_BACKEND\node_modules\mongoose\lib\model.js:3770:10)
    at file:///D:/X_APP/XAPP_BACKEND/middlewares/userMiddleware.js:24:32
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
Run Code Online (Sandbox Code Playgroud)

我搜索并看到许多使用聚合的应用程序,但是是否可以使用我的updateOne猫鼬方法来实现它?如果是,我的申请有什么问题?

mongoose mongodb node.js

3
推荐指数
1
解决办法
2185
查看次数

标签 统计

android ×1

android-camerax ×1

kotlin ×1

mongodb ×1

mongoose ×1

node.js ×1