C# 我可以在Hololens中录制同样使用摄像头的应用程序的视频吗?有办法做到这两个吗?

C# 我可以在Hololens中录制同样使用摄像头的应用程序的视频吗?有办法做到这两个吗?,c#,unity3d,uwp,hololens,windows-mixed-reality,C#,Unity3d,Uwp,Hololens,Windows Mixed Reality,我正在为微软Hololens开发Unity引擎中的一个应用程序,它使用相机拍照。在我们的代码中,首先启动拍照模式,然后启动相机,拍摄照片,然后处理相机,最后结束拍照模式。用户必须在此应用程序的整个过程中拍摄多张照片才能实现其主要功能。这些图片没有存储在任何地方,我们只从中获取颜色 以下是拍照代码: Resolution cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.wi

我正在为微软Hololens开发Unity引擎中的一个应用程序,它使用相机拍照。在我们的代码中,首先启动拍照模式,然后启动相机,拍摄照片,然后处理相机,最后结束拍照模式。用户必须在此应用程序的整个过程中拍摄多张照片才能实现其主要功能。这些图片没有存储在任何地方,我们只从中获取颜色

以下是拍照代码:

Resolution cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).First();
targetTexture = new Texture2D(cameraResolution.width, cameraResolution.height);

                // Create a PhotoCapture object
                PhotoCapture.CreateAsync(false, delegate (PhotoCapture captureObject)
                {

                    photoCaptureObject = captureObject;
                    CameraParameters cameraParameters = new CameraParameters();
                    cameraParameters.hologramOpacity = 0.0f;
                    cameraParameters.cameraResolutionWidth = cameraResolution.width;
                    cameraParameters.cameraResolutionHeight = cameraResolution.height;
                    cameraParameters.pixelFormat = CapturePixelFormat.BGRA32;

                    // Activate the camera
                    photoCaptureObject.StartPhotoModeAsync(cameraParameters, delegate (PhotoCapture.PhotoCaptureResult result)
                    {
                        // Take a picture
                        try
                        {
                            Debug.Log("Trying to take photo");
                            photoCaptureObject.TakePhotoAsync(OnCapturedPhotoToMemory);
                        }
                        catch (System.ArgumentException e)
                        {
                            Debug.LogError("System.ArgumentException:\n" + e.Message);
                        }
                    });
                });
然后用以下方法处理:

    void OnStoppedPhotoMode(PhotoCapture.PhotoCaptureResult result)
    {
        // Shutdown our photo capture resource
        Debug.Log("Disposing of camera");
        photoCaptureObject.Dispose();
        photoCaptureObject = null;
    }
对于我们的项目来说,这段代码工作得非常好——每次用户点击一个对象时,我们都会拍摄一张照片并从中获取一种颜色

由于这是针对CS课程中的一个高级设计项目,我们希望向全班展示视频或现场演示

然而,只要我们的应用程序尝试拍照,记录就会停止。我们无法使用网络摄像头录制视频,也无法在录制过程中使用上述代码拍照。这是有道理的,似乎我们的应用程序必须从录制过程中抢占摄像头才能使用它。这也适用于通过设备门户的流式视频

这意味着,我们永远不能记录一个运行项目的演示。只要我们的应用程序访问了摄像头,视频录制就会结束

我找到了几年前的帖子和帖子,询问这个问题,但都没有得到解决。现在有一个已知的解决方法吗?有什么方法可以让我在应用程序内部拍照的同时获得项目的视频?

我从来没有找到一种方法。 不是说这是不可能的,但是当你的应用程序打开时,相机处于活动状态,开发者门户的屏幕截图和视频捕获功能将被禁用

我使用语音命令释放相机(但不改变场景),这样我就可以拍摄屏幕截图,因为我使用设备的相机只是为了Vuforia对象识别,所以只要我不移动(太多),屏幕截图是可以接受的


因此,我从来没有环顾四周寻找另一种方式。也许有一种方法可以做到这一点(因为微软已经能够展示它),但它可能不是我们作为外部开发人员可以访问的任何东西;就像很多全息镜头的功能一样。

它似乎确实被关闭了,我最终要做的是添加到我的应用程序中,录制并共享我在手机上看到的屏幕。但我承认这是一个火箭筒的问题。