MediaFrameReference 클래스

정의

에서 가져온 프레임을 나타내는 래퍼 클래스입니다 MediaFrameSource. 이 클래스의 속성을 사용하여 원본에서 제공하는 특정 프레임 형식(예: a VideoMediaFrame 또는 BufferMediaFrame.)에 액세스합니다.

public ref class MediaFrameReference sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MediaFrameReference final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MediaFrameReference : System.IDisposable
Public NotInheritable Class MediaFrameReference
Implements IDisposable
상속
Object IInspectable MediaFrameReference
특성
구현

Windows 요구 사항

디바이스 패밀리
Windows 10 Anniversary Edition (10.0.14393.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v3.0에서 도입되었습니다.)

설명

미디어 프레임 원본에서 MediaFrameReference 인스턴스를 얻으려면 원하는 미디어 프레임 원본을 사용하도록 초기화된 MediaCapture 개체를 호출 CreateFrameReaderAsync 하여 만듭니 MediaFrameReader 다. 프레임 판독기를 호출 StartAsync하여 시작한 후 미디어 프레임 원본에서 최신 프레임을 나타내는 MediaFrameReference를 가져오기 위해 호출 TryAcquireLatestFrame 합니다.

각각 MediaFrameReader 은 에서 가져온 MediaFrameReference 개체의 순환 버퍼를 TryAcquireLatestFrame유지 관리합니다. 버퍼의 모든 MediaFrameReference 개체를 사용한 후 TryAcquireLatestFrame에 대한 후속 호출로 인해 시스템이 가장 오래된 버퍼 개체에서 호출 Close (또는 C#에서 Dispose )하여 다시 사용할 수 있습니다. 개체가 삭제되면 더 이상 이 개체를 사용하여 프레임 데이터에 액세스할 수 없습니다. 따라서 실제로 프레임을 처리하는 데 필요한 것보다 MediaFrameReference 개체를 더 오래 저장해서는 안 됩니다. 앱 시나리오에서 데이터에 대한 참조를 더 오래 유지해야 하는 경우 제공된 API 중 하나를 사용하여 기본 데이터를 가져와야 합니다. 여기에는 다음이 포함됩니다.

더 이상 사용되지 않을 때 이러한 API에서 반환된 개체에 대해 호출 Close (또는 Dispose)하는 것은 앱의 책임입니다.

중요

MediaFrameReference의 속성에서 VideoMediaFrame 제공하는 개체에 Direct3DSurface 액세스 SoftwareBitmap 하는 경우 시스템은 이러한 개체에 대한 강력한 참조를 만듭니다. 즉, 포함된 MediaFrameReference 를 호출 Dispose 할 때 삭제되지 않습니다. 속성에서 MediaFrameReference.VideoMediaFrame 가져온 VideoFrame 개체에서 제공하는 SoftwareBitmap 또는 Direct3DSurface 개체에도 적용됩니다. 개체를 즉시 삭제하려면 SoftwareBitmap 또는 Direct3DSurfaceDispose 메서드를 직접 명시적으로 호출해야 합니다. 그러지 않으면 가비지 수집기에서 결국 이러한 개체의 메모리를 해제하지만 언제 수행될지 알 수 없으며, 할당된 비트맵 또는 화면 수가 시스템에서 허용된 최대 크기를 초과할 경우 새 프레임의 흐름이 중단됩니다.

프레임을 캡처하는 데 사용하는 MediaFrameSource 방법에 대한 지침은 MediaFrameReader를 사용하여 미디어 프레임 처리를 참조하세요.

버전 기록

Windows 버전 SDK 버전 추가된 값
1803 17134 AudioMediaFrame

속성

AudioMediaFrame

AudioMediaFrame 표시되는 프레임 형식인 경우 래핑MediaFrameReference된 형식을 가져옵니다.

BufferMediaFrame

BufferMediaFrame 표시되는 프레임 형식인 경우 래핑MediaFrameReference된 형식을 가져옵니다.

CoordinateSystem

정의된 경우 참조된 미디어 프레임의 공간 좌표계를 가져옵니다.

Duration

참조된 미디어 프레임의 기간을 가져옵니다.

Format

참조 미디어 프레임의 형식을 가져옵니다.

Properties

참조된 프레임의 속성 맵을 가져옵니다.

SourceKind

색, 적외선 또는 사용자 지정 소스와 같이 참조된 프레임이 시작된 형식 MediaFrameSource 을 가져옵니다.

SystemRelativeTime

시스템을 기준으로 하며 동일한 디바이스의 여러 미디어 원본에서 상관 관계가 있는 타임스탬프를 가져옵니다.

VideoMediaFrame

VideoMediaFrame 표시되는 프레임 형식인 경우 래핑MediaFrameReference된 형식을 가져옵니다.

메서드

Close()

개체 및 연결된 리소스를 삭제합니다.

적용 대상

추가 정보