Мультимедиа

Разработайте приложение, которое поможет пользователям как создавать, так и воспроизводить эффектные мультимедийные шоу. Теперь в Windows 8.1 это стало проще сделать благодаря новым свойствам для захвата мультимедиа в различных средах, простому способу добавления элементов управления воспроизведением в приложения, использующие XAML, и встроенной поддержке Media Source Extensions (MSE) для воспроизведения HTML5.

Обновлено в Windows 8.1

Обновления функции видеообработки

[Скачайте образцы Media Hub и MediaStreamSource.]

В Windows 8.1 представлены некоторые новые обновления и поддержка, относящаяся к форматам видео, кодекам и обработке.

Поддержка CFF

В Microsoft Media Foundation добавлена поддержка общего формата файлов Common File Format (CFF) для его реализаций MP4/fMP4. CFF — это формат контейнера для аудио- и видеоданных, основанный на базовом формате мультимедийных файлов (ISO Base Media File Format).

Новый режим XVP

В видеопроцессор перекодирования Transcode Video Processor (XVP) Media Foundation добавлен режим MrfCrf444, который всегда работает в программном обеспечении и не использует аппаратное ускорение DirectX Video Acceleration (DXVA). Это гарантирует однородность результатов на разных платформах, не зависящую от базового оборудования. Поскольку режим MrfCrf444выполняется полностью в программном обеспечении, операция перекодирования может длиться дольше и требовать больших ресурсов. Этот новый режим вынуждает использовать большие фильтры. При преобразовании цветов применяется полная точность. Предпочтение отдается форматам цвета с повышенным качеством, и включается высококачественный деинтерлейсер.

Вы можете использовать его в своем приложении, присвоив MediaTrancoder.VideoProcessingAlgorithm значение MediaVideoProcessingAlgorithm.mrfCrf444.


// sourceFile and destFile are IStorageFile objects defined elsewhere.

var profile = Windows.Media.MediaProperties.MediaEncodingProfile.createMp4
    (Windows.Media.MediaProperties.VideoEncodingQuality.hd720p); 

var transcoder = new Windows.Media.Transcoding.MediaTranscoder(); 

transcoder.videoProcessingAlgorithm = 
    Windows.Media.Transcoding.MediaVideoProcessingAlgorithm.mrfCrf444; 

transcoder.prepareFileTranscodeAsync(sourceFile, destFile, profile); 


Поддержка расширенного диапазона YUV в Media Foundation

В Windows 8 для конвейера Media Foundation по умолчанию выбирается "студийный" диапазон YUV [Y: 16-235]; возможность передачи сигнала не предоставляется, если на вход подается расширенный диапазон данных YUV [Y: 0-255]. Теперь у конвейера Media Foundation есть возможность передавать сигнал в расширенном диапазоне устройству графического процессора. Это позволяет всему конвейеру Media Foundation, включая декодер MJPEG, учитывать расширенный диапазон.

Атрибут MF_MT_VIDEO_NOMINAL_RANGE применяется для того, чтобы указать "студийный" или расширенный диапазон YUV для содержимого.

Media Stream Source

В Windows 8.1 появился новый общий источник мультимедиа для приложений Магазина Windows, который называется Media Stream Source (MSS). API для этой технологии находятся в пространстве имен Windows.Media.Core, а основным классом источника мультимедиа является MediaStreamSource. MSS позволяет приложениям отправлять сжатые и несжатые примеры звуковых и видеоданных в конвейер мультимедиа для воспроизведения, перекодирования и потоковой передачи. Мультимедийные примеры могут динамически генерироваться приложением или демультиплексироваться из потока или файлов. Такая гибкость облегчает расширение поддержки платформ за счет новых форматов мультимедиа и решение таких сложных задач, как адаптивная потоковая передача или внедрение пользовательского источника мультимедиа в управляемый код.

API MediaStreamSource очень похожи на одноименные API Microsoft Silverlight. Поэтому разработчики, знакомые с версиями этих API для Silverlight, могут в значительной степени полагаться на свои знания при создании приложений Магазина Windows с помощью MSS.

MSS можно применять к объектам audio и video в приложениях Магазина Windows на JavaScript и к объектам MediaElement в приложениях Магазина Windows на C++, C# или Visual Basic и MediaTranscoder.

Вот некоторые из основных API MSS. Порядок перечисления отражает основной поток функционирования MSS. Вы заметите, что 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 по отношению к объекту отсрочки.

Доступ к запросу образца осуществляется с помощью MediaStreamSourceSampleRequestedEventArgs, который передается обработчику события MediaStreamSource.SampleRequest.

Приложение указывает на то, что оно достигло конца потока, отвечая на MediaStreamSourceSampleRequest без предоставления MediaStreamSample или путем присвоения свойству MediaStreamSourceSampleRequest.Sample значения null.

MediaStreamSource.Closed (событие)

MediaStreamSource применяет это событие для уведомления приложения о том, что он завершил работу.

MediaStreamSourceClosedRequest

Представляет собой запрос из MediaStreamSource, указывающий на то, что он закрылся.

Доступ к запросу закрытия осуществляется с помощью MediaStreamSourceClosedEventArgs, который передается обработчику событий MediaStreamSource.Closed.

MediaElement.SetMediaStreamSource Задает в качестве источника MediaElement MediaStreamSource.

 

Подробный пример использования MSS: MediaStreamSource Sample.

Обновление функции аудио- и видеозахвата

[Скачайте образцы Media Capture и Audio effects discovery.]

В Windows 8.1 представлено множество обновлений функции захвата звука и видео.

Режим последовательности фотографий

В режиме последовательности фотографий снимается непрерывная последовательность фотографий. Этот режим настраивается путем использования класса LowLagPhotoSequenceControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Используйте свойство LowLagPhotoSequenceControl.Supported, чтобы выяснить, поддерживает ли устройство режим последовательности фотографий.

Ключевой сценарий для режима последовательности фотографий состоит в получении фотографий в прошлом — то есть перед тем, как пользователь делает снимок. С помощью PhotoCapturedEventArgs.CaptureTimeOffset можно указать, относился ли кадр к будущему или прошлому. Значение больше 0 означает будущее, а значение меньше 0 означает прошлое.

Чтобы инициировать этот режим, вызовите MediaCapture.PrepareLowLagPhotoSequenceCaptureAsync. Чтобы начать фотосъемку, вызовите StartAsync. Ваше приложение продолжит получать фотографии с устройства вплоть до остановки этой операции. Чтобы остановить фотосъемку, вызовите StopAsync.

Если приложению требуется задать количество кадров, получаемых за секунду, оно может использовать LowLagPhotoSequence.PhotosPerSecondLimit. Это может оказаться полезным в ситуациях, когда матрица устройства способна обрабатывать 30 кадров в секунду (кадров/с), но приложению требуется только 4 кадра в секунду.

Поддержка эскизов

Эскизы отдельных фотографий и операций последовательности фотографий поддерживаются с помощью классов LowLagPhotoControl и LowLagPhotoSequenceControl, доступ к которым можно получить с помощью свойства MediaCapture.VideoDeviceController.

Чтобы включить эскизы, присвойте свойству ThumbnailEnabled значение true. Задать необходимый размер эскиза можно с помощью DesiredThumbnailSize, а формат — с помощью ThumbnailFormat.

Режим сцены

В режиме сцены заключительная обработка отснятых кадров настраивается в соответствии с записываемой в данный момент сценой. Этот режим настраивается путем использования класса SceneModeControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Свойство SupportedModes указывает, какие режимы сцены (например, Snow, Night и Sport) поддерживаются устройством. Чтобы выбрать режим, вызовите SceneModeControl.SetValueAsync.

Режим фонаря

В режиме фонаря применяется светодиодный фонарь устройства. Этот режим настраивается путем использования класса TorchControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

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

Режим вспышки

В режиме вспышки применяется вспышка устройства. Этот режим настраивается путем использования класса FlashControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Выяснить, поддерживает ли устройство данный элемент управления, можно путем проверки свойства FlashControl.Supported. Если он поддерживается, режим вспышки можно применять в приложении для фотографов для обработки условий слабого освещения или для устранения эффекта красных глаз ( RedEyeReduction).

Баланс белого

Баланс белого дает вашему приложению возможность дополнительного управления настройками баланса белого для устройства. Эти уровни настраиваются путем использования класса WhiteBalanceControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Выяснить, поддерживает ли устройство данный элемент управления, можно путем проверки свойства WhiteBalanceControl.Supported. Если он поддерживается, вы можете использовать одно из значений ColorTemperaturePreset путем вызова SetPresetAsync. Можно также вызвать SetValueAsync, чтобы задать определенное значение Value от Min до Max.

Режим выдержки

Режим выдержки дает вашему приложению возможность дополнительного управления настройками выдержки для устройства. Этот режим настраивается путем использования класса ExposureControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Выяснить, поддерживает ли устройство данный элемент управления, можно путем проверки свойства ExposureControl.Supported. Если он поддерживается, ваше приложение может задавать значения экспозиции путем вызова SetValueAsync. Чтобы включить автоматическую выдержку, вызовите SetAutoAsync.

Режим компенсации выдержки

Режим компенсации выдержки позволяет приложению контролировать уровни выдержки снятых фотографий. Этот режим настраивается путем использования класса ExposureCompensationControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Выяснить, поддерживает ли устройство данный элемент управления, можно путем проверки свойства ExposureCompensationControl.Supported. Если да, то приложение может задавать значения экспозиции путем вызова SetValueAsync.

Режим фокуса

Режим фокуса позволяет вашему приложению дополнительно управлять настройками фокуса для устройства. Этот режим настраивается путем использования класса FocusControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Выяснить, поддерживает ли устройство данный элемент управления, можно путем проверки свойства FocusControl.Supported. Если да, вы можете использовать одно из значений FocusPreset путем вызова SetPresetAsync. Можно также вызвать SetValueAsync, чтобы задать определенное значение Valueот Min до Max.

Режим ISO

Режим ISO позволяет вашему приложению управлять настройками скорости ISO для устройства. В условиях слабого освещения вы можете предпочесть повышенный уровень шума в обмен на повышенную общую яркость. Элемент управления скоростью ISO позволяет вашему приложению регулировать этот компромисс. Этот режим настраивается путем использования класса IsoSpeedControl, доступ к которому осуществляется с помощью свойства MediaCapture.VideoDeviceController.

Выяснить, поддерживает ли устройство данный элемент управления, можно путем проверки свойства IsoSpeedControl.Supported. Если да, используйте SetPresetAsync, чтобы присвоить уровню ISO одно из значений IsoSpeedPreset. В свойстве SupportedPresets перечисляются заданные значения, поддерживаемые устройством.

Рассматриваемая область

Рассматриваемая область позволяет вашему приложению указать RegionOfInterest при предварительном просмотре. Этот параметр настраивается путем использования класса RegionsOfInterestControl, доступ к которому осуществляется с помощью MediaCapture.VideoDeviceController.

Используйте данный параметр для указания области предварительного просмотра, для которой следует вычислить такие значения, как фокус и уровни выдержки. Рассматриваемая область позволяет применять такие сценарии, как "коснитесь, чтобы навести фокус".

Поле зрения

Поле зрения позволяет приложениям вычислить поле зрения и угол камеры на основе настроек MediaCaptureSettings.PitchOffsetDegrees, MediaCaptureSettings.Horizontal35mmEquivalentFocalLength и MediaCaptureSettings.Vertical35mmEquivalentFocalLength.

Фотосъемка во время видеозаписи

Приложения могут проверять настройки MediaCaptureSettings.ConcurrentRecordAndPhotoSupported, чтобы определить, поддерживает ли устройство фотосъемку во время видеозаписи.

Определение необходимости воспроизведения звука камерой

Параметр MediaCaptureSettings.CameraSoundRequiredForRegion указывает, требуется ли от операционной системы воспроизводить звук, когда камера делает снимок. Приложения могут использовать эту информацию, чтобы решить, требуется ли воспроизводить звук.

Оптимизация устройства захвата

Свойство VideoDeviceController.PrimaryUse показывает, применяется ли устройство главным образом для фотосъемки или для видеозаписи. Это позволяет системе оптимизировать производительность и качество.

Запись несжатых файлов AVI и WAV

Приложение может записывать несжатый аудиопоток с микрофона, если присвоить MediaCaptureInitializationSettings.AudioProcessing значение Raw.

Обнаружение аудиоэффектов

Приложение может обнаруживать цепочку обработки звука в конечной точке. Эту информацию можно использовать для настройки обработки звука в приложении. В пространстве имен Windows.Media.Effects содержатся классы AudioEffect, AudioCaptureEffectsManager, AudioEffectsManager и AudioRenderEffectsManager.

Чтобы создать объект AudioCaptureEffectsManager, вызовите AudioEffectsManager.CreateAudioCaptureEffectsManager. Чтобы создать объект AudioRenderEffectsManager, вызовите AudioEffectsManager.CreateAudioRenderEffectsManager.

Обновления MediaElement в XAML

[Скачайте образец XAML media playback.]

Возможности элемента управления MediaElement были расширены. Теперь он поддерживает встроенные элементы управления транспортировкой и полнооконную прорисовку.

Свойство MediaElement.AreTransportControlsEnabled включает или выключает встроенные элементы управления транспортировкой. Поэтому вам больше не нужно использовать собственные кнопки для выполнения таких задач, как воспроизведение, остановка, приостановка или стирание записи. Этот API действует так же, как и свойство controls по отношению к элементам HTML5 video и audio.

Свойство MediaElement.IsFullWindow включает и отключает полнооконную прорисовку.

Ниже представлен код, демонстрирующий порядок включения встроенных элементов управления транспортировкой.



<MediaElement Name="media" 
              Source="testVideo.mp4" 
              AreTransportControlsEnabled="True" />


MediaElement media = new MediaElement();
media.AreTransportControlsEnabled = true;

Ниже представлен код, демонстрирующий порядок включения полнооконной прорисовки.


<MediaElement Name="media"
              Source="testVideo.mp4" 
              IsFullWindow="True" />


MediaElement media = new MediaElement();
media.IsFullWindow = true;

Воспроизведение видео- и аудиозаписей в HTML5

[Скачайте образец HTML media playback.]

В Windows 8.1 включен ряд обновлений, относящихся к воспроизведению мультимедийных звуковых и видеоданных, включая поддержку расширений консорциума W3C Media Source Extensions (MSE) и Encrypted Media Extensions (EME) в HTML5 и обновлений элемента управления MediaElement в XAML.

Media Source Extensions (MSE) для видео и аудио в HTML5

Media Source Extensions (MSE) в HTML5 — это стандарт W3C, расширяющий возможности элементов video и audio за счет включения динамического изменения мультимедийного потока без использования подключаемых модулей. Это позволяет реализовать такие сценарии, как адаптивная потоковая передача мультимедиа, трансляция в прямом эфире, а также монтаж и редактирование видео.

Пользовательские решения в сфере адаптивной потоковой передачи могут основываться на MSE. Эти решения динамически изменяют скорость мультимедийного потока с целью обеспечить наивысшее качество потоковой передачи. Они пытаются определить оптимальную скорость потока, исходя из таких ограничений, как пропускная способность сети и использование ЦП. Например, когда пропускная способность сети падает, MSE позволяет перейти к меньшей скорости видеопотока. При этом качество изображения снижается, однако воспроизведение видео продолжается без прерываний.

Динамическая стыковка видео позволяет, например, вставлять рекламные ролики во время воспроизведения мультимедиа. Это значит, что вам не обязательно заранее вставлять ролики в файлы мультимедиа. Вместо этого их можно вставлять в мультимедийный поток в любой момент при воспроизведении.

Вот ряд важных элементов API MSE.

Интерфейс API Описание
MediaSource Объект мультимедиа, присоединенный к элементу списка воспроизведения HTML. MediaSource содержит данные мультимедиа, заданные с помощью одного или нескольких объектов SourceBuffer.
MediaSource.readyState Показывает текущее состояние объекта MediaSource и определяет, присоединен ли он к элементу списка воспроизведения.
SourceBuffer Буфер для хранения данных мультимедиа.
SourceBufferList Коллекция объектов SourceBuffer.
MediaSource.endOfStream Показывает причину ошибки "Конец потока".
MediaSource.sourceBuffers Коллекция объектов SourceBuffer, которые содержат данные мультимедиа для MediaSource.
createObjectURL Создает URL-адрес для объекта MediaSource. Объект MediaSource можно присоединить к элементу video или audio, задав этот URL-адрес в свойстве src.

 

Encrypted Media Extensions (MSE) для видео и аудио в HTML5

Encrypted Media Extensions (EME) в HTML5 — это стандарт консорциума W3C, который расширяет возможности элементов video и audio за счет включения защищенного с помощью управления цифровыми правами (DRM) содержимого без применения подключаемых модулей. EME поддерживается в Internet Explorer 11 и приложениях Магазина Windows на JavaScript выполняющихся в Windows 8.1.

С EME работают следующие основные API.

Интерфейс API Описание
MediaKeys Ключи, используемые для шифрования и дешифрования данных мультимедиа.
MediaKeySession Сеанс воспроизведения, с которым связаны ключи.
MediaKeys.createSession Создает объект MediaKeySession, связанный с объектом MediaKeys.
keySystem Атрибут элемента списка воспроизведения, в котором указывается система ключей. Система ключей определяет поставщика защиты содержимого или механизм расшифровки.
MediaKeyError Указывает типы ошибок, связанные с MediaKeys.
MediaKeyMessageEvent Указывает типы событий, связанных с MediaKeys.

 

Обновления функции "Воспроизвести на устройстве"

[Скачайте образцы Media Play To и SystemMediaTransportControls.]

Windows 8.1 содержит ряд обновлений, улучшающих взаимодействие с функцией "Воспроизвести на устройстве".

Программный запуск пользовательского интерфейса функции "Воспроизвести на устройстве"

В новом руководстве по пользовательскому интерфейсу для Windows 8.1 разработчикам приложений рекомендуется предоставлять в приложении кнопку с помощью стандартного глифа "Воспроизвести на устройстве", чтобы программным образом отображать всплывающий элемент "Воспроизвести на устройстве", а не требовать от пользователя выводить на экран пользовательский интерфейс, проводя пальцем по чудо-кнопке "Устройства". Используйте ShowPlayToUI, чтобы отобразить всплывающий элемент.

Ниже представлен код, демонстрирующий порядок отображения пользовательского интерфейса функции "Воспроизвести на устройстве".


function showPlayTo() {
    Windows.Media.PlayTo.PlayToManager.showPlayToUI();
}


Воспроизведение на устройстве по ссылке

Функция "Воспроизвести на устройстве по ссылке" позволяет веб-страницам и приложениям Магазина Windows воспроизводить содержимое, защищенное DRM. Приложение указывает предпочтительный универсальный код ресурса (URI), который будет отправлен на целевое устройство функции воспроизведения на устройстве. Этот URI может указывать на облачный сервер мультимедиа. Если присутствует свойство preferredSourceUri, то целевое устройство для воспроизведения может воспроизводить содержимое напрямую с облачного сервера. При таком воспроизведении содержимое может быть защищено DRM. (Сравните с другим вариантом — воспроизведение содержимого с компьютера под управлением Windows 8.1 — при котором содержимое не должно быть защищено.)

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



// video is a MediaElement defined in XAML.
using Windows.Foundation;

video.Source = new Uri("http://www.contoso.com/videos/video.mp4"); 
video.PlayToSource.PreferredSourceUri = 
   new Uri("http://www.contoso.com/catalogid=1234"); 




<video src="http://www.contoso.com/videos/video.mp4" 
   x-ms-playToPreferredSourceUri="http://www.contoso.com/catalogid=1234" /> 


var video = document.createElement('video'); 
document.body.appendChild(video); 

video.src = "http://www.contoso.com/videos/video.mp4"; 
video.msPlayToPreferredSourceUri = "http://www.contoso.com/catalogid=1234"; 

Поддержка аудио и видео Adobe Flash

Теперь функция "Воспроизвести на устройстве" поддерживает воспроизведение незащищенных аудио- и видеоданных Flash из Internet Explorer с новым пользовательским интерфейсом Windows с помощью цифрового мультимедийного ресивера Digital Media Receiver (DMR).

Поддержка Media Source Extensions

Media Source Extensions (MSE) — это новый стандарт консорциума W3C, который будет лежать в основе расширенной энергосберегающей доставки высококачественных полнометражных видеозаписей с помощью одного лишь веб-браузера. MSE не требуется подключаемый модуль. Теперь функция "Воспроизвести на устройстве" поддерживает воспроизведение незащищенного содержимого MSE из приложения Магазина Windows на JavaScript и веб-сайтов из Internet Explorer с пользовательским интерфейсом Windows.

Видео на аудиоустройствах

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

Пользовательский интерфейс элемента управления транспортировкой мультимедиа

В Windows 8.1 вы можете использовать новый класс SystemMediaTransportControls вместо класса MediaControl.

Пользовательский интерфейс элементов управления транспортировкой мультимедиа, который запускается при нажатии кнопок увеличения или уменьшения громкости, теперь может применяться для дистанционного управления воспроизведением на устройстве, заданном функцией "Воспроизвести на устройстве".

Эти элементы управления транспортировкой можно отображать и использовать для управления локальным или удаленным воспроизведением, когда исходное приложение выполняется в фоновом режиме или когда экран устройства заблокирован. Все приложения Магазина Windows получают реализацию по умолчанию, включая следующее:

  • подключение таких основных элементов управления транспортировкой, как play (воспроизвести), pause (приостановить) и seek (найти);

  • название приложения вместо названия песни;

  • значок приложения вместо обложки альбома.

В вашем приложении реализация по умолчанию может быть усовершенствована за счет следующего:

  • подключение таких дополнительных элементов управления транспортировкой, как функции next-track (переход к следующей дорожке) и previous-track (переход к предыдущей дорожке);

  • предоставление названия песни;

  • предоставление обложки альбома;

  • предоставление названия альбома.

Обновления пользовательского интерфейса чудо-кнопки "Устройства"

Чудо-кнопка "Устройства" выполнена в виде вложенного меню, в котором расположены следующие категории:

  • Воспроизвести

  • Печать

  • Проект

  • Коснуться и отправить (если устройство аппаратно поддерживает эту функцию)

Это помогает пользователям понять, что они могут найти на чудо-кнопке "Устройства". Эти разделы будут видны, даже если на данный момент нет доступных устройств.

Устойчивость Digital Media Receiver

Последний из выбранных цифровых мультимедийных ресиверов Digital Media Receiver и его статус подключения будут выделены на чудо-кнопке "Устройство".

Улучшенный поток подключения и отключения и усовершенствованное составление отчетов об ошибках

Пользовательский интерфейс функции "Воспроизвести на устройстве" поддерживает теперь улучшенный поток подключения и отключения.

Пока функция "Воспроизвести на устройстве" устанавливает соединение с устройством, в новом пользовательском интерфейсе отображается сообщение "Connecting" (Подключение) и всплывающий элемент "Воспроизвести на устройстве" остается видимым вплоть до установления подключения. Если соединение не удается установить, отчет об ошибке подключения отправляется в исходное приложение.

Кнопка Disconnect (Отключить) удалена. Чтобы прекратить удаленное воспроизведение и вернуться к локальному воспроизведению, пользователи вместо этой кнопки выбирают вариант This PC (Этот компьютер), который перечислен вместе с другими устройствами в пользовательском интерфейсе функции "Воспроизвести на устройстве".

 

 

Показ:
© 2014 Microsoft