2010-11-27 3 views
4

Ceci est une question difficile:/Android MediaPlayer provoque jeu à geler avec « la lecture AudioHardware pcm va en veille »

Je fais un jeu Android basé sur la musique a la Audiosurf. Cela fonctionne bien, sauf quelques secondes avant la fin d'une chanson (qui est jouée avec un MediaPlayer normal) la musique s'arrête en avril et le jeu entier (y compris l'interface utilisateur) se bloque pendant plusieurs secondes.

Chaque fois que cela se produit, je vois une erreur "AudioHardware pcm lecture en attente" dans logcat.

recherche sur Google m'a conduit à la conclusion que

  • cela pourrait être un problème spécifique HTC Hero (ne peut pas être reproduit sur l'émulateur ou d'autres appareils)
  • ce message est normalement enregistré lorsqu'un flux http ISN » t assez rapide pour MediaPlayer
  • audio dans Android suce en général

Comme je décoder les mp3 avec le NDK + libmpg123 pour l'analyse audio déjà que je pourrais aswell jus Je joue moi-même l'audio (en utilisant une très mauvaise interface entre le code NDK C et un AudioTrack en Java).

Y at-il un correctif/solution de contournement pour ce bug ou dois-je vraiment aller de cette façon? (Il ne me reste que peu de temps pour terminer ce projet)

J'apprécie chaque indice!

+0

solution de contournement actuelle: fondu de la chanson 3 secondes avant la fin et l'arrêter. –

Répondre

0

Vous pouvez arrêter la musique lorsque vous avez tout tamponné dans votre code C. Puisque le AudioTrack a un retard, il se peut que vous deviez attendre plus longtemps pour qu'il se termine.

Cependant, j'aurais besoin de plus de détails sur votre code pour vous aider.

+0

Je pense que j'ai mal interprété votre question. Si cela ne se passe que sur un appareil spécifique, alors ma réponse ne va probablement pas aider. –

+0

oui c'est vraiment spécifique à l'appareil - im utilisant une solution de contournement maintenant (fade out chanson 3s avant la fin) –

Questions connexes