MediaStreamSource 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
미디어 파이프라인에 직접 미디어 샘플을 제공하는 미디어 원본을 나타냅니다.
public ref class MediaStreamSource sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.Media.Core.IMediaStreamSourceFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MediaStreamSource final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Media.Core.IMediaStreamSourceFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class MediaStreamSource final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Media.Core.IMediaStreamSourceFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MediaStreamSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Media.Core.IMediaStreamSourceFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class MediaStreamSource
function MediaStreamSource(descriptor, descriptor2)
Public NotInheritable Class MediaStreamSource
- 상속
- 특성
- 구현
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10240.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)
|
설명
UWP 앱에서 미디어 스트림 원본을 사용하는 예제는 MediaStreamSource 샘플을 참조하세요.
MediaStreamSource는 Windows 8.1 도입된 UWP 앱에 대한 새로운 일반 미디어 원본입니다. MediaStreamSource를 사용하면 앱이 재생, 코드 변환 및 스트리밍을 위해 압축되거나 압축되지 않은 오디오 및 비디오 샘플을 미디어 파이프라인으로 보낼 수 있습니다. 미디어 샘플은 앱에서 동적으로 생성하거나 스트림 또는 파일에서 멀티플렉싱을 해제할 수 있습니다. 이러한 유연성을 통해 앱은 새 미디어 형식에 대한 플랫폼 지원을 보다 쉽게 확장하거나 적응 스트리밍과 같은 복잡한 문제를 해결할 수 있습니다.
MediaStreamSourceAPI는 동일한 이름의 Microsoft SilverlightAPI와 매우 유사합니다.
MediaStreamSource는 C++, C#또는 Visual Basic 및 MediaTranscoder를 사용하여 JavaScript, UWP 앱의 MediaElement 개체를 사용하여 Windows 앱의 오디오 및 비디오 개체와 함께 사용할 수 있습니다.
MediaStreamSource 샘플은 MediaStreamSource를 사용하는 방법을 보여 줍니다. 다음은 MediaStreamSource API에 기본 몇 가지입니다. 순서는 MediaStreamSource가 작동하는 방식의 기본 흐름을 간략하게 설명합니다. MediaStreamSource는 이벤트 인수를 통해 앱에 요청 개체를 보냅니다. 이러한 요청 개체를 사용하면 앱이 MediaStreamSource와 상호 작용하고 데이터를 다시 전달할 수 있습니다.
API | 설명 |
---|---|
MediaStreamSource | 미디어 파이프라인에 직접 미디어 샘플을 제공하는 미디어 원본을 나타냅니다. MediaStreamSource는 애플리케이션에서 제공하는 MediaStreamSample 개체를 사용합니다. |
MediaStreamSample | MediaStreamSource에서 사용하는 미디어 샘플을 나타냅니다. |
MediaStreamSource.Starting (이벤트) | MediaStreamSource는 이 이벤트를 사용하여 미디어 데이터 처리를 시작할 준비가 되었음을 앱에 알립니다. |
MediaStreamSourceStartingRequest | MediaStreamSource에서 미디어 데이터 처리를 시작할 준비가 되었다는 요청을 나타냅니다. 앱은 요청에 대해 SetActualStartPosition 을 호출하여 이 요청에 가능한 한 빨리 회신해야 합니다. 앱이 MediaStreamSource의 데이터 처리를 지연시켜야 하는 경우 MediaStreamSourceStartingRequest.GetDeferral에서 비동기 지연을 가져올 수 있습니다. MediaStreamSource를 시작할 준비가 되면 지연 개체에서 Complete 를 호출합니다. 시작 요청은 MediaStreamSource.Starting 이벤트 처리기에 전달되는 MediaStreamSourceStartingEventArgs를 통해 액세스됩니다. |
MediaStreamSource.SampleRequested (이벤트) | MediaStreamSource는 이 이벤트를 사용하여 MediaStreamSample에 대한 준비가 되었음을 앱에 알립니다. 이 이벤트에 대한 처리기를 등록하려면 앱이 필요합니다. |
MediaStreamSourceSampleRequest | 새 미디어 샘플에 대한 MediaStreamSource의 요청을 나타냅니다. Sample 속성을 새 MediaStreamSample로 설정하면 MediaStreamSource가 미디어 샘플을 검색하고 미디어 데이터를 계속 처리하도록 트리거됩니다. 앱은 이 요청에 최대한 빨리 회신해야 합니다. 앱이 MediaStreamSample을 보내기 전에 시간이 필요한 경우 MediaStreamSourceSampleRequest.GetDeferral에서 비동기 지연을 가져올 수 있습니다. 앱이 지연으로 완료되면 지연 개체에서 Complete 를 호출합니다. 샘플 요청은 MediaStreamSource.SampleRequest 이벤트 처리기에 전달되는 MediaStreamSourceSampleRequestedEventArgs를 통해 액세스됩니다. 앱은 MediaStreamSample을 제공하지 않고 MediaStreamSourceSampleRequest에 응답하거나 MediaStreamSourceSampleRequest.Sample 속성을 null에 할당하여 스트림의 끝에 도달했음을 나타냅니다. |
MediaStreamSource.Closed (이벤트) | MediaStreamSource는 이 이벤트를 사용하여 앱이 종료되었음을 앱에 알립니다. |
MediaStreamSourceClosedRequest | MediaStreamSource가 닫힌 요청을 나타냅니다. 닫기 요청은 MediaStreamSource.Closed 이벤트 처리기에 전달되는 MediaStreamSourceClosedEventArgs를 통해 액세스됩니다. |
MediaElement.SetMediaStreamSource | MediaElement의 원본을 MediaStreamSource로 설정합니다. |
버전 기록
Windows 버전 | SDK 버전 | 추가된 값 |
---|---|---|
1607 | 14393 | SampleRendered |
1703 | 15063 | MaxSupportedPlaybackRate |
1709 | 16299 | IsLive |
생성자
MediaStreamSource(IMediaStreamDescriptor) |
지정된 IMediaStreamDescriptor에서 MediaStreamSource의 instance 만듭니다. |
MediaStreamSource(IMediaStreamDescriptor, IMediaStreamDescriptor) |
두 IMediaStreamDescriptor 개체에서 MediaStreamSource의 instance 만듭니다. |
속성
BufferTime |
MediaStreamSource에서 버퍼링되는 데이터의 양을 가져오거나 설정합니다. |
CanSeek |
애플리케이션이 미디어 시간줄에서 위치 변경을 지원하는지 여부를 가져오거나 설정합니다. |
Duration |
미디어 시간 줄의 기간을 가져오거나 설정합니다. |
IsLive |
처리 중인 미디어 콘텐츠가 라이브 상태인지 여부를 나타내는 값을 가져오거나 설정합니다. |
MaxSupportedPlaybackRate |
MediaStreamSource에 대해 지원되는 최대 재생 속도를 가져옵니다. |
MediaProtectionManager |
미디어를 보호하는 데 사용되는 DRM(Digital Rights Management)MediaProtectionManager 를 가져오거나 설정합니다. |
MusicProperties |
음악 관련 메타데이터에 사용되는 음악 속성을 가져옵니다. |
Thumbnail |
비디오 썸네일 이미지 또는 음악 앨범 아트의 스트림에 대한 참조인 썸네일을 가져오거나 설정합니다. |
VideoProperties |
비디오 관련 메타데이터에 사용되는 비디오 속성을 가져옵니다. |
메서드
AddProtectionKey(IMediaStreamDescriptor, Byte[], Byte[]) |
MediaProtectionManager에서 지정된 스트림을 암호화하고 암호 해독하는 데 사용하는 DRM(디지털 권한 관리) 보호 키를 추가합니다. |
AddStreamDescriptor(IMediaStreamDescriptor) |
MediaStreamSource에 새 스트림 설명자를 추가합니다. |
NotifyError(MediaStreamSourceErrorStatus) |
MediaStreamSource에 오류가 발생하여 애플리케이션이 MediaStreamSource에 데이터를 계속 배달하지 못하도록 합니다. |
SetBufferedRange(TimeSpan, TimeSpan) |
애플리케이션이 현재 버퍼링 중인 데이터 범위를 설정합니다. |
이벤트
Closed |
MediaStreamSource가 종료될 때 발생합니다. |
Paused |
MediaStreamSource가 일시 중지되고 지정되지 않은 기간 동안 MediaStreamSample 개체 요청을 중지하지만 현재 위치에서 MediaStreamSample 개체 요청을 다시 시작할 것으로 예상되는 경우에 발생합니다. |
SampleRendered |
MediaStreamSource의 샘플이 렌더링될 때 발생합니다. |
SampleRequested |
MediaStreamSource가 지정된 스트림에 대해 MediaStreamSample을 요청할 때 발생합니다. |
Starting |
MediaStreamSource가 MediaStreamSample 개체 요청을 시작할 준비가 되면 발생합니다. 이벤트는 첫 번째 MediaStreamSample 이 전달되어야 하는 미디어 시간 줄의 위치를 지정할 수 있습니다. |
SwitchStreamsRequested |
MediaStreamSource가 특정 스트림에 대한 MediaStreamSample 개체 요청을 중지하고 대신 다른 스트림에서 MediaStreamSample 개체 요청을 시작할 때 발생합니다. |