簡體   English   中英

我可以在還使用相機的Hololens中錄制應用程序的視頻嗎? 有辦法做到這兩者嗎?

[英]Can I record a video of an app in the Hololens that also uses the camera? Is there a way to do both?

我正在為Microsoft 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,只要我不動(太多)屏幕截圖是可以接受的。

因此,我從來沒有環顧四周。 可能有一種方法可以做到(看似Microsoft已經能夠展示它),但是作為外部開發人員,我們可能無法訪問任何東西。 像很多Hololens功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM