如何强制仅打开设备摄像头以进行视频捕获意图?

Posted

技术标签:

【中文标题】如何强制仅打开设备摄像头以进行视频捕获意图?【英文标题】:How can I force to open only device camera for video capture intent? 【发布时间】:2018-07-09 00:04:06 【问题描述】:

当我使用相机意图捕捉视频时,用户可以选择所有相机应用程序。但我想强制用户只打开设备摄像头。我该怎么做?

我目前的意图:Intent captureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

private void captureVideo() 
    Intent captureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (captureIntent.resolveActivity(conversationActivity.getPackageManager()) != null) 
        if (captureVideoUri == null) 
            captureVideoUri = Uri.fromFile(CameraHelper.getOutputMediaFile(CameraConfiguration.MEDIA_ACTION_VIDEO));
        
        captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, captureVideoUri);
    
    startActivityForResult(captureIntent, 1);

【问题讨论】:

这个答案链接可能会有所帮助***.com/a/19051279/8770539 谢谢我检查了链接,但没有多大帮助:( 如果你想直接使用设备摄像头,你不应该使用INTENTs,你必须自己实现捕获。请参考:github.com/googlesamples/android-Camera2Video 【参考方案1】:

我想强制用户仅打开设备摄像头。我该怎么做?

您可以通过定义setClassName (String packageName, String className) 打开特定的应用程序。但我认为这不是正确的方法,因为如果您不开发特定于设备的应用程序,您可能会遇到问题。

原因是 - 每个设备不会有相同的相机应用程序,因此,application_full_class_name 不会每次都借给该特定应用程序。它也可能抛出ActivityNoFoundException

【讨论】:

以上是关于如何强制仅打开设备摄像头以进行视频捕获意图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS中一次录制前后摄像头的视频

使用 Blazor 访问设备摄像头

一次从 OpenCV 中的两个摄像头捕获视频

如何限制插件在android / cordova中切换后置/后置摄像头

强制笔记本电脑在 HTML5 文件输入上打开摄像头接受图像/* 捕获

avplayer 不播放通过 IOS Objective-C 中的设备摄像头捕获的视频中的音频