Loupe

[UWP] Adaptative streaming protocols

En parcourant la nouvelle API pour les applications UWP (Universal Windows Platform), je suis tombé sur quelque chose que, personnellement, j’attendais depuis pas mal de temps : la possibilité de lire des flux HLS ou DASH en natif !

HLS : HTTP Live Streaming

DASH : Dynamic Adaptive Streaming over HTTP

Comment c’était avant ?

Si vous avez déjà du utiliser l’un ou l’autre des protocoles dans un projet Windows 8 ou Windows Phone 8, vous vous êtes certainement cassé les dents car rien n’est prévu pour. Par exemple, sur WP8 pour lire du HLS, une solution est de passer par le Player Framework et d’utiliser un plugin basé sur un MediaStreamSource (disponible ici Windows Phone Streaming Media). Pas forcement le plus simple à mettre en place.

Comment c’est maintenant ?

Aujourd’hui, rien de plus facile. Pas besoin de librairies en plus ou de redévelopper sa propre implémentation du protocole, on utilise un MediaElement et c’est parti :

   1: MediaElement mediaElement = new MediaElement();
   2:  
   3: // La source est une simple url de ce type :
   4: // http://mydomain.com/toto/playlist.m3u8
   5: var result = await AdaptiveMediaSource.CreateFromUriAsync(source);
   6: if (result.Status == AdaptiveMediaSourceCreationStatus.Success)
   7: {
   8:     var astream = result.MediaSource;
   9:     mediaElement.SetMediaStreamSource(astream);
  10: }

La classe AdaptiveMediaSource fait le travail pour nous, plus besoin de parser la librairie à la main pour récupérer les différentes qualités du stream, tout est déjà géré pour nous.

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus