Domanda

Vorrei cambiare canzone sul mio MediaElent da track1.mp3 a track2.mp3. Ed ecco il codice:

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

Il MediaElement cambiare la sorgente, ma semplicemente non si avvia. Che cosa potrebbe essere sbagliato in questo codice

È stato utile?

Soluzione

Prova a impostare MyMediaElement.AutoPlay a true, non appena la fonte cambia dovrebbe svolgere. Si potrebbe anche studiare utilizzando il metodo MediaElement.SetSource () che prende un flusso piuttosto che un URI.

Altri suggerimenti

Ho avuto lo stesso problema. Ho potuto impostare la riproduzione automatica e la fonte in XAML e sarebbe lavorare, ma se ho cambiato fonte nel codice sarebbe semplicemente non fare nulla.
Ho catturato l'evento MediaOpened del controllo.
Il problema è che colpisce Play () subito dopo aver cambiato la fonte, quindi lo stato corrente viene chiuso. Ci vogliono un paio di cicli di clock per modificare lo stato. Quindi, se si mette Play (); all'interno di tale gestore di eventi che funzionerà.

Non sembrano essere facendo niente di male. Qui ci sono un paio di diagnostica che vorrei provare: -

Specifica track2 come il file iniziale funziona?

Allega all'evento MediaFailed, fa che avere sparato?

Associare un TextBlock alla proprietà CurrentState osservare come il CurrentState è cambiato.

È possibile impostare AutoPlay a false e poi nel gestore di MediaOpened che fate Play(). Le persone tipo di accennato verso la soluzione qui, ma non molto preciso. Si potrebbe anche gestire l'evento MediaFailed nel caso in cui i mezzi di comunicazione non riesce ad aprire per qualche motivo (non può trovare il file, ecc).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top