Руководство API скрипты

VideoCapture

класс в UnityEngine.Windows.WebCam / Реализовано в: UnityEngine.CoreModule

Описание

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

Этот API поддерживается в проигрывателях Windows (автономных и универсальных платформах Windows) и в редакторе Windows. Окончательная видеозапись будет храниться в локальной файловой системе в формате MP4. Видеозахват реализован с помощью интерфейса WinRT: Windows.Media.Capture.IMediaCapture.

Дополнительные сведения см. в документации Microsoft по Windows MediaCapture.

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

Важно! Требуется Windows 10 (версия 10.0.10240.0 или более поздняя) и не работает в Windows 7.

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;

// Используйте это для инициализации void Start() { StartVideoCaptureTest(); }

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

if (Time.time > m_stopRecordingTimer) { 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 Вы должны вызвать Dispose, чтобы завершить работу экземпляра VideoCapture и освободить собственные объекты WinRT.
GetUnsafePointerToVideoDeviceController Предоставляет указатель COM на собственный IVideoDeviceController.
StartRecordingAsync Асинхронно записывает видео с веб-камеры в файловую систему.
StartVideoModeAsync Асинхронно запускает видеорежим.
StopRecordingAsync Асинхронно останавливает запись видео с веб-камеры в файловую систему.
StopVideoModeAsync Асинхронно останавливает видеорежим.

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

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

Делегаты

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