Поделиться через


MediaStreamSource Класс

Определение

Представляет источник мультимедиа, который доставляет примеры мультимедиа непосредственно в конвейер мультимедиа.

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
Наследование
Object Platform::Object IInspectable MediaStreamSource
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Комментарии

Пример использования media Stream Source в приложении UWP см. в разделе Пример MediaStreamSource .

MediaStreamSource — это новый универсальный источник мультимедиа для приложений UWP, появившийся в Windows 8.1. MediaStreamSource позволяет приложениям отправлять сжатые или несжатые примеры звука и видео в конвейер мультимедиа для воспроизведения, перекодирования и потоковой передачи. Примеры мультимедиа могут динамически создаваться приложением или де-мультиплексироваться из потока или файлов. Такая гибкость позволяет приложениям более легко расширять поддержку платформы для новых форматов мультимедиа или решать сложные задачи, такие как адаптивная потоковая передача.

MediaStreamSourceAPI очень похож на Microsoft SilverlightAPI с тем же именем.

MediaStreamSource можно использовать с аудио - и видеообращениями в приложении Windows с помощью JavaScript, объекты MediaElement в приложениях UWP с помощью C++, C# или Visual Basic, а также MediaTranscoder.

В примере MediaStreamSource показано, как использовать MediaStreamSource. Ниже приведены некоторые из main API MediaStreamSource. Порядок описывает базовый поток функций MediaStreamSource. Вы заметите, что MediaStreamSource отправляет объекты запроса в приложение с помощью аргументов события. Эти объекты запросов позволяют приложению взаимодействовать с MediaStreamSource и передавать ему данные.

API Описание
MediaStreamSource Представляет источник мультимедиа, который доставляет примеры мультимедиа непосредственно в конвейер мультимедиа. MediaStreamSource использует объекты MediaStreamSample , предоставляемые приложением.
MediaStreamSample Представляет образец мультимедиа, используемый MediaStreamSource.
MediaStreamSource.Starting (событие) MediaStreamSource использует это событие для уведомления приложения о том, что оно готово к обработке данных мультимедиа.
MediaStreamSourceStartingRequest Представляет запрос от MediaStreamSource, готовый к началу обработки данных мультимедиа. Приложения должны как можно скорее ответить на этот запрос, вызвав метод SetActualStartPosition в запросе. Если приложению необходимо отложить обработку данных MediaStreamSource, оно может получить асинхронную отсрочку от MediaStreamSourceStartingRequest.GetDeferral. Когда приложение готово к запуску MediaStreamSource, оно вызывает Complete для объекта отсрочки. Доступ к начальнму запросу осуществляется через MediaStreamSourceStartingEventArgs , которые передаются в обработчик событий MediaStreamSource.Starting .
MediaStreamSource.SampleRequested (событие) MediaStreamSource использует это событие для уведомления приложения о том, что оно готово к использованию MediaStreamSample. Приложения должны зарегистрировать обработчик для этого события.
MediaStreamSourceSampleRequest Представляет запрос из MediaStreamSource для нового примера мультимедиа. Если для свойства Sample задано новое значение MediaStreamSample, mediaStreamSource будет извлекать образец мультимедиа и продолжать обработку данных мультимедиа. Приложения должны как можно скорее ответить на этот запрос. Если приложению требуется время перед отправкой MediaStreamSample, оно может получить асинхронную отсрочку от MediaStreamSourceSampleRequest.GetDeferral. Когда приложение завершается с отсрочкой, оно вызывает Complete для объекта deferral. Доступ к образцу запроса осуществляется через MediaStreamSourceSampleRequestedEventArgs , которые передаются в обработчик событий MediaStreamSource.SampleRequest . Приложение указывает, что оно достигло конца потока, отвечая на MediaStreamSourceSampleRequest , не предоставляя MediaStreamSample, или присваивая свойству MediaStreamSourceSampleRequest.Sampleзначение NULL.
MediaStreamSource.Closed (событие) MediaStreamSource использует это событие для уведомления приложения о завершении работы.
MediaStreamSourceClosedRequest Представляет закрытый запрос из MediaStreamSource. Доступ к запросу на закрытие осуществляется через MediaStreamSourceClosedEventArgs , которые передаются в обработчик событий MediaStreamSource.Closed .
MediaElement.SetMediaStreamSource Задает источник MediaElement в значение MediaStreamSource.

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1607 14393 SampleRendered
1703 15063 MaxSupportedPlaybackRate
1709 16299 IsLive

Конструкторы

MediaStreamSource(IMediaStreamDescriptor)

Создает экземпляр MediaStreamSource на основе указанного IMediaStreamDescriptor.

MediaStreamSource(IMediaStreamDescriptor, IMediaStreamDescriptor)

Создает экземпляр MediaStreamSource из двух объектов IMediaStreamDescriptor .

Свойства

BufferTime

Возвращает или задает объем данных, буферизирующихся MediaStreamSource.

CanSeek

Возвращает или задает значение, указывающее, поддерживает ли приложение изменение своей позиции в временной строке мультимедиа.

Duration

Возвращает или задает длительность временной линии мультимедиа.

IsLive

Возвращает или задает значение, указывающее, является ли обрабатываемое мультимедийное содержимое динамическим.

MaxSupportedPlaybackRate

Возвращает поддерживаемую maxiumum скорость воспроизведения для MediaStreamSource.

MediaProtectionManager

Возвращает или задает mediaProtectionManager , используемый для защиты мультимедиа, управление цифровыми правами (DRM).

MusicProperties

Возвращает свойства музыки, используемые для метаданных, связанных с музыкой.

Thumbnail

Возвращает или задает эскиз, который является ссылкой на поток для изображения эскиза видео или рисунка музыкального альбома.

VideoProperties

Возвращает свойства видео, используемые для метаданных, связанных с видео.

Методы

AddProtectionKey(IMediaStreamDescriptor, Byte[], Byte[])

Добавляет ключ защиты управления цифровыми правами (DRM), который используется MediaProtectionManager для шифрования и расшифровки указанного потока.

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 из другого потока.

Применяется к

См. также раздел