Alterar fonte de mediaElement (Silverlight)
-
20-09-2019 - |
Pergunta
Eu gostaria de mudar a música no meu mediaElent da faixa1.mp3 para track2.mp3. E aqui está o código:
MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();
O mediarelement muda a fonte, mas simplesmente não começa. O que poderia estar errado com este código?
Solução
Tente definir o MyMediaElement.autoPlay como TRUE, assim que a fonte mudar de que ela deve jogar. Você também pode investigar usando o método mediaElement.SetSource () que leva um fluxo em vez de um URI.
Outras dicas
Eu tive o mesmo problema. Eu poderia definir o AutoPlay e a fonte no XAML e funcionaria, mas se eu mudasse de fonte no código, isso não faria nada.
Eu capturei o evento MediaPoned do controle.
O problema é que ele atinge o play () logo após você alterar a fonte, para que o estado atual seja fechado. São necessários alguns ciclos de relógio para mudar o estado. Então, se você colocar play (); Dentro desse manipulador de eventos, ele funcionará.
Você não parece estar fazendo nada de errado. Aqui estão alguns diagnósticos que eu tentaria:-
Especifique o Track2 como o arquivo inicial que funciona?
Anexe ao evento MediaFailed, isso é demitido?
Ligue um bloco de texto à propriedade CurrentState para observar como o CurrentState mudou.
Você define AutoPlay
para false
e então no manipulador meios de redigir Play()
. As pessoas meio que sugeriram a solução aqui, mas não muito exatas. Você também pode lidar com o evento MediaFailed, caso a mídia não seja aberta por algum motivo (não é possível encontrar arquivo etc.).