Estou tentando implementar uma música em um jogo que começa a tocar e faz loops continuamente no Windows Phone 7 via XNA 4.0. No emulador, isso funciona bem; no entanto, quando implantado em um telefone, ele simplesmente exibe uma tela preta antes de retornar à tela inicial. Aqui está o código não autorizado em questão e comentar esse código faz com que o aplicativo funcione bem no telefone:
// 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);
}
O arquivo de música em si é um arquivo com 2:53 de comprimento e 2,28mb .wma com taxa de bits de 106kbps.
Novamente, isso funciona perfeitamente no emulador, mas não é executado no telefone. Obrigado por qualquer ajuda que você pode fornecer!
Respostas:
Nós descobrimos isso. As informações estão disponíveis on-line, mas estão muito bem ocultas; por isso, postarei aqui para uma boa medida.
Basicamente, se o telefone estiver conectado a um computador e o software Zune estiver em execução, ele bloqueia a mídia no telefone, o que significa que os MediaPlayers nos aplicativos nunca terão permissão para reproduzir uma música.
Para que funcione, o usuário deve desconectar o telefone (por exemplo, desconectar o cabo USB) ou usar a ferramenta Windows Phone Connect, que foi projetada com isso em mente no que diz respeito à depuração: http: // msdn. microsoft.com/pt-br/library/gg180729%28v=VS.92%29.aspx - Eu não experimentei a ferramenta, mas a desmontagem funcionou como um encanto.
Além disso, quando o aplicativo não tem permissão para reproduzir uma música, ele trava, a menos que a exceção seja tratada, portanto, use blocos try / catch. A exceção capturada pode simplesmente ser ignorada.
fonte
A resposta de Michael Zehnich é realmente correta. No entanto, me deparei com outro problema que causa a mesma exceção.
O problema para mim era que estava faltando o recurso ID_CAP_MEDIALIB no meu WMAppManifest.xml.
Espero que isto ajude.
fonte