12
votes

Android MediaPlayer ne joue pas Fichier MP3

J'ai écrit l'application la plus élémentaire que je puisse penser à essayer de jouer un fichier MP3, mais cela ne fonctionne pas. Je ne reçois aucune erreur, mais lorsque l'application démarre, le son n'est pas joué. XXX

Qu'est-ce que je manque? J'ai "Norm_Iphone_Money.mp3" à l'intérieur du dossier RES / RAW. Le fichier joue bien dans Windows Media Player et iTunes.

J'utilise les dernières versions de Java SDK et Eclipse pour Java. L'application est ciblée pour Android 2.2 et fonctionne bien dans l'émulateur malgré aucun son.


1 commentaires

Avez-vous essayé sur un véritable appareil? Vous pouvez essayer d'utiliser les méthodes SedaTaSource () et préparer () avant le début d'un démarrage de MediaPlayer () au lieu de créer (), mais je doute que cela fonctionne si crée () ne ...


6 Réponses :


10
votes

Essayez de remplacer ces deux lignes: xxx

avec cette ligne: xxx

et voir si cela fonctionne.


3 commentaires

Si ces deux écrits sont logiquement différents dans le code compilé, je serais choqué.


Non, mais le tester moi-même cela ne fonctionne que de cette façon, cela ne fonctionne pas comment il l'a écrit à l'origine. Si quelqu'un d'autre se soucie d'expliquer exactement pourquoi c'est-à-dire que ce serait génial. Jouer une ressource audio brute est décrit ici ici développeur.android.com/Guide/topics /media/index.html


Bien sûr, il est logiquement différent. MP.Create appellera la méthode statique et retournera une nouvelle instance d'un MediaPlayer, qui n'est jamais stockée. Ensuite, il appelle commencer () sur l'instance construite par défaut.



-2
votes

La méthode statique Créer (contexte, int) à partir du type Mediaplayer doit être consulté de manière statique. Essayez ceci: xxx

Il jouera le fichier .mp3 avec cette ligne aussi xxx


0 commentaires

43
votes

Le problème est que le volume de support est réglé sur 0 (pas le volume de la sonnerie). Vous pouvez le définir par:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);


6 commentaires

quelle est cette startupactivité


édité la réponse! La starupabilité n'est qu'une activité dans mon projet. Mais nous pouvons faire référence au audio_service constant par classe de contexte. L'activité est juste un contexte et audio_service est une chaîne de contexte constante statique. Merci beaucoup pour vos commentaires, Deppzz!


Et il va une heure de ma vie ... merci !!


@Xuantungvu .. Veuillez expliquer à propos de ces valeurs 20 et 0 dans (Audiomanager.stream_music, 20, 0) ..


Merci, ajouté des liens vers l'explication.


Cela fonctionne mais pourquoi? Je veux dire, mon code travaille depuis des mois et soudainement sonné sans erreur. Peut être une mise à jour Android?



-4
votes

Je suggérerais ceci:

MediaPlayer mp = new MediaPlayer();
//bla bla bla
mp = MediaPlayer.create(getApplicationContext(), R.raw.norm_iphone_money);


1 commentaires

Pourquoi yo créer un lecteur multimédia mp , puis le remplacer par la sortie de mediaplayer.create ?



-5
votes

avait le même problème Après avoir cliqué pour démarrer le lecteur multimédia, l'écran est allé noir et l'application s'est arrêtée.

Je viens de changer

mediaplayer mp = mediaplayer.create (ceci, r.raw.sound); mp.start ();

à

mediaplayer mp = mediafplayer.create (ceci, r.raw.sound) .start ();

Je ne suis pas vraiment sûr de quelle est la différence là-bas, mais cela a résolu mon problème.


1 commentaires

Il n'y a pas de différence si vous ne faites que chaîner l'appel de la méthode.



1
votes

Le problème est avec l'émulateur, modifiez l'émulateur ou essayez d'exécuter l'application sur un périphérique réel. Cela devrait résoudre le problème.


0 commentaires