Riproduzione di una canzone che causa l'arresto anomalo di WP7 sul telefono, ma non sull'emulatore


13

Sto cercando di implementare una canzone in un gioco che inizia a suonare e continua a girare su Windows Phone 7 tramite XNA 4.0. Sull'emulatore, questo funziona bene, tuttavia quando viene distribuito su un telefono, dà semplicemente una schermata nera prima di tornare alla schermata principale. Ecco il codice canaglia in questione e commentare questo codice fa funzionare correttamente l'app sul telefono:

// in the constructor fields
private Song song;

// in the LoadContent() method
song = Content.Load<Song>("song");

// in the Update() method
if (MediaPlayer.GameHasControl && MediaPlayer.State != MediaState.Playing)
{
    MediaPlayer.Play(song);
}

Il file del brano stesso è un file 2:53, 2.28mb .wma a 106kbps bitrate.

Anche in questo caso funziona perfettamente sull'emulatore ma non funziona affatto sul telefono. Grazie per tutto l'aiuto che potete fornire!


4
Prova ad attaccare e prova quale eccezione stai ricevendo. Ciò dovrebbe aiutare a ottenere un aiuto su questo.
Ray Dey,

Buon Consiglio. L'eccezione generata è "System.InvalidOperationException: riproduzione del brano non riuscita, verificare che il brano non sia protetto da DRM." Inoltre, ho provato con la canzone codificata come MP3 e ho ottenuto gli stessi risultati (ha funzionato nell'emulatore, non funziona nel telefono). Una domanda a margine: esiste un modo semplice per stampare / salvare il testo di debug sul telefono ..? La mia unica opzione era disegnare il testo sullo schermo, eh.
Michael Zehnich,

Risposte:


13

Lo abbiamo capito. Le informazioni sono disponibili online ma sono davvero ben nascoste, quindi le pubblicherò qui per buona misura.

Fondamentalmente se il telefono è collegato a un computer e il software Zune è in esecuzione, blocca i media sul telefono, il che significa che MediaPlayer nelle app non potrà mai permesso di riprodurre una canzone.

Per farlo funzionare, l'utente deve scollegare il telefono (ovvero scollegare il cavo USB) o utilizzare lo strumento Windows Phone Connect che è stato progettato tenendo presente questo aspetto per quanto riguarda il debug: http: // msdn. microsoft.com/en-us/library/gg180729%28v=VS.92%29.aspx - Non ho provato lo strumento, ma sbloccare ha funzionato come un fascino.

Inoltre, quando l'app non dispone dell'autorizzazione per riprodurre un brano, si bloccherà a meno che non venga gestita l'eccezione, quindi assicurati di utilizzare i blocchi try / catch. L'eccezione rilevata può essere semplicemente ignorata.


1
Ah, le gioie di DRM.
Jari Komppa,

1
Buono a sapersi, fastidioso come immagino che alcuni sviluppatori incontrino questo problema.
Ray Dey,

2

La risposta di Michael Zehnich è davvero corretta. Tuttavia mi sono imbattuto in un altro problema che causa la stessa eccezione.

Il problema per me era che mancava la capacità ID_CAP_MEDIALIB nel mio WMAppManifest.xml.

<Capability Name="ID_CAP_MEDIALIB"/>

Spero che sia di aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.