Unity 6.3
0 онлайн 67 гостей 3 в системе
Вход

VideoCapture

класс в UnityEngine.Windows.WebCam

Выполнено в:UnityEngine.CoreModule

Описание

Запись видео с веб-камеры непосредственно на диск.

Этот API поддерживается в плеерах Windows (Standalone и Universal Windows Platform) и в редакторе Windows. Готовая видеозапись сохраняется в локальной файловой системе в формате MP4. VideoCapture реализован через интерфейс WinRT: Windows.Media.Capture.IMediaCapture.
Дополнительные сведения см. в документации Майкрософта по Windows MediaCapture.

Примечание: Универсальная платформа Windows требует наличия веб-камеры и микрофона.

using UnityEngine;
using System.Collections;
using System.Linq;
using UnityEngine.Windows.WebCam;

public class VideoCaptureExample : MonoBehaviour { static readonly float MaxRecordingTime = 5.0f;

VideoCapture m_VideoCapture = null; float m_stopRecordingTimer = float.MaxValue; bool m_isStoppingRecording = false;

// Use this for initialization void Start() { StartVideoCaptureTest(); }

void Update() { if (m_VideoCapture == null || !m_VideoCapture.IsRecording) { return; }

if (!m_isStoppingRecording && Time.time > m_stopRecordingTimer) { m_isStoppingRecording = true; m_VideoCapture.StopRecordingAsync(OnStoppedRecordingVideo); } }

void StartVideoCaptureTest() { Resolution cameraResolution = VideoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).First(); Debug.Log(cameraResolution);

float cameraFramerate = VideoCapture.GetSupportedFrameRatesForResolution(cameraResolution).OrderByDescending((fps) => fps).First(); Debug.Log(cameraFramerate);

VideoCapture.CreateAsync(false, delegate(VideoCapture videoCapture) { if (videoCapture != null) { m_VideoCapture = videoCapture; Debug.Log("Created VideoCapture Instance!");

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

m_VideoCapture.StartVideoModeAsync(cameraParameters, VideoCapture.AudioState.ApplicationAndMicAudio, OnStartedVideoCaptureMode); } else { Debug.LogError("Failed to create VideoCapture Instance!"); } }); }

void OnStartedVideoCaptureMode(VideoCapture.VideoCaptureResult result) { Debug.Log("Started Video Capture Mode!"); string timeStamp = Time.time.ToString().Replace(".", "").Replace(":", ""); string filename = string.Format("TestVideo_{0}.mp4", timeStamp); string filepath = System.IO.Path.Combine(Application.persistentDataPath, filename); filepath = filepath.Replace("/", @"\"); m_VideoCapture.StartRecordingAsync(filepath, OnStartedRecordingVideo); }

void OnStoppedVideoCaptureMode(VideoCapture.VideoCaptureResult result) { Debug.Log("Stopped Video Capture Mode!"); }

void OnStartedRecordingVideo(VideoCapture.VideoCaptureResult result) { Debug.Log("Started Recording Video!"); m_stopRecordingTimer = Time.time + MaxRecordingTime; }

void OnStoppedRecordingVideo(VideoCapture.VideoCaptureResult result) { Debug.Log("Stopped Recording Video!"); m_VideoCapture.StopVideoModeAsync(OnStoppedVideoCaptureMode); } }

Статические свойства

Свойство Описание
SupportedResolutionsСписок всех поддерживаемых разрешений устройств для записи видео.

Свойства

Свойство Описание
IsRecordingУказывает, записывает ли экземпляр VideoCapture видео в данный момент.

Открытые методы

Метод Описание
DisposeЧтобы закрыть экземпляр VideoCapture и освободить основные объекты WinRT, необходимо вызвать команду Dispose.
GetUnsafePointerToVideoDeviceControllerПредоставляет указатель COM на основной IVideoDeviceController.
StartRecordingAsyncАсинхронно записывает видео с веб-камеры в файловую систему.
StartVideoModeAsyncАсинхронно запускает видеорежим.
StopRecordingAsyncАсинхронно останавливает запись видео с веб-камеры в файловую систему.
StopVideoModeAsyncАсинхронно останавливает видеорежим.

Статические методы

Метод Описание
CreateAsyncАсинхронно создает экземпляр объекта VideoCapture, который может использоваться для записи видео с веб-камеры на диск.
GetSupportedFrameRatesForResolutionВозвращает поддерживаемые частоты кадров, при которых видео может быть записано при данном разрешении.

Делегаты

делегат Описание
OnStartedRecordingVideoCallbackВызывается, когда веб-камера начинает запись видео.
OnStoppedRecordingVideoCallbackВызывается, когда видеозапись была сохранена в файловой системе.
OnVideoCaptureResourceCreatedCallbackВызывается при создании ресурса VideoCapture.
OnVideoModeStartedCallbackВызывается при запуске режима видео.
OnVideoModeStoppedCallbackВызывается, когда видеорежим остановлен.