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?

Foi útil?

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.).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top