Question

Je voudrais changer ma chanson sur MediaElent de track1.mp3 à track2.mp3. Et voici le code:

MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();

Le MediaElement changer la source, mais juste ne démarre pas. Ce qui pourrait peut-être mal avec ce code?

Était-ce utile?

La solution

Essayez de régler MyMediaElement.AutoPlay à true, dès que la source change, il devrait jouer. Vous pouvez également étudier en utilisant la méthode MediaElement.SetSource () qui prend un cours d'eau plutôt que d'un uri.

Autres conseils

J'ai eu le même problème. Je pourrais mettre AutoPlay et la source dans le XAML et cela fonctionnerait, mais si je changeais source dans le code il serait tout simplement ne rien faire.
Je saisis l'événement MediaOpened du contrôle.
Le problème est qu'il touche Play () juste après avoir changé la source, de sorte que l'état actuel est fermé. Il faut quelques cycles d'horloge pour changer l'état. Donc, si vous mettez Play (); à l'intérieur de ce gestionnaire d'événements, il fonctionnera.

Vous ne semblez pas faire quelque chose de mal. Voici quelques diagnostics que je voudrais essayer: -

Spécifiez track2 que le fichier initial fait que le travail?

Joindre à l'événement MediaFailed, est-ce que faire virer?

Liez un TextBlock à la propriété CurrentState d'observer comment le CurrentState a changé.

Vous définissez AutoPlay à false puis dans le gestionnaire MediaOpened vous Play(). Les gens ont laissé entendre genre de vers la solution ici, mais pas très exacte. Vous pouvez également gérer l'événement MediaFailed juste au cas où les médias ne s'ouvre pour une raison quelconque (ne peut pas trouver le fichier etc).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top