Je ne sais pas comment vous configurez votre liste de lecture, mais je suppose que cela est la façon dont vous faites ceci:
- Vous avez un MediaElement
- Vous vous abonnez à l'événement MediaElement.MediaEnded
Vous
- analyser le fichier m38u et définir le premier flux de la liste à MediaElement.Source.
- Vous gérez MediaElement.MediaEnded et chaque fois que vous venez de définir le flux suivant à partir de la liste.
Est-ce vrai? Si oui, alors votre problème est une étape 4. Chaque fois que vous définissez une nouvelle source - MediaElement demande le flux du serveur et tamponne au moins quelque chose pour commencer à montrer la vidéo. Je suppose que c'est la raison pour laquelle vous voyez des transitions de 3 secondes. Voici comment vous devez résoudre ceci:
- Vous avez le même MediaElement.
- Vous devez implémenter sur votre propre interface IRandomAccessStream, qui peut télécharger un flux en mémoire (si ce n'est pas vraiment énorme) ou sur le disque, ou simplement un flux tampon avec une taille de tampon spécifique.
- Vous analysez le fichier m38u, initialisez d'abord votre IRandomAccessStream et le définissez comme source.
- Lorsque par exemple la première vidéo sur 90% du temps - vous devez initialiser le second flux de la playlist, commencez à le télécharger avec IRandomAccessStream.
- Quand MediaElement.MediaEnded sera tiré - vous aurez flux tamponné, qui est prêt à MediaElement, vous avez juste besoin de mettre en flux de l'étape 4.
J'ai essayé de le faire avec des fichiers locaux, il a donné moi la même performance de transition lente – Ateik
fichiers locaux peuvent parfois être lent aussi. Essayez d'utiliser la mémoire. Si cela ne fonctionne pas, je suppose que vous devrez les combiner sur le serveur pour l'utilisateur. – outcoldman