Я разрабатываю приложение в движке Unity для Microsoft Hololens, которое использует камеру для съемки.В нашем коде первый режим фото и камера запускаются, снимок делается, затем камера удаляется, и режим фото заканчивается.Пользователь должен сделать несколько снимков в течение этого приложения для его основной функциональности.Картинки нигде не хранятся, мы только берем с них цвета.
Вот код для фотографирования:
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, мы должны показать видео или живую демонстрацию для класса.
Однако запись всегда останавливается, как только наше приложение пытается сделать снимок.Мы не можем записать видео с веб-камеры, а также сделать снимки, используя наш код выше, во время записи.Это имеет смысл, кажется, что наше приложение должно отключить веб-камеру от процесса записи, чтобы использовать ее.Это также относится к потоковой передаче видео через портал устройства.
Это означает, что мы никогда не сможем записать демонстрацию нашего действующего проекта.Запись видео всегда заканчивается, как только наше приложение получает доступ к камере.
Я обнаружил посты и темы много лет назад, спрашивающие об этом, но ни одна из них так и не была решена.Есть ли известный способ обойти это сейчас?Можно ли как-нибудь получить видео моего проекта, используя его для съемки внутри приложения?