2011-09-22 4 views
2

Je rencontre des problèmes pour lire des fichiers audio (mp3). Ces fichiers musicaux sont comme des sons de clic qui résident dans le dossier brut, le problème est qu'il y a beaucoup de clics à des intervalles aléatoires. exception de nullPointer. Il se produit n'importe où quand le clic est fait et n'importe quand, est-il lié au problème de mémoire ou au problème relatif de MediaPlayer, toutes les suggestions seront appreceated. Son objet lecteur multimédia simple qui im ​​appelant, mais c'est un jeu donc sur le toucher joue les fichiers, donc dans le jeu j'ai beaucoup de choses à faire glisser donc je veux un clic, à ce moment, il fonctionne bien mais quand dépasse certaines limites il jette des exceptions de pointeur nul. c'est le code:Avoir des problèmes à lire des fichiers mp3 en android

MediaPlayer mp= MediaPlayer.create(context,R.raw.soun1); 
    mp.start(); 

thats it:

+1

mettez votre code ici pour que nous puissions vous aider –

+0

j'ai édité m y question –

+0

J'ai posté ma réponse s'il vous plaît essayer –

Répondre

0

I J'ai eu ma réponse, c'est SoundPool, en particulier créé lorsque le souci de l'application de jeu où les fichiers audio sont utilisés en continu, alors ici nous devrions utiliser SoundPool à l'exception de MediaPlayer.

1

juste essayer ce ::

MediaPlayer mp = new MediaPlayer(); 
    mp= MediaPlayer.create(this,R.raw.soun1); 
    mp.start(); 

permission fichier manifeste :::

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
+1

Pourquoi créer un MediaPlayer construit par défaut du tout, si vous allez le perdre tout de suite? –

+0

pourquoi déclarer la permission pour le stockage externe, quand tout est fait sur la mémoire de téléphone –

+0

comme vous le savez, vous devez donner cette permission pour stocker des données dans la carte SD même comme ceci. C'est comme la partie externe. –

0

Le problème est avec le codage MP3. J'ai essayé avec le même code, peu de travail et peu ne le font pas. Alors s'il vous plaît essayez avec un autre si elle montre la même erreur la prochaine fois.

+0

question n'est pas avec l'encodage mp3, son en fait, avec le système, lecteur multimédia renvoie null lorsque vous jouez le son constamment, chaque fois la création d'instance de lecteur multimédia causait l'erreur, donc surtout pour le jeu, ici android fournit soundiap api. –

+0

Le site de développeur android indique si l'objet est null, puis il a échoué à créer l'objet. http://developer.android.com/reference/android/media/MediaPlayer.html#create%28android.content.Context,%20int%29 –

+0

No..i a écrit un code de 2 lignes dans l'activité, qui le joue juste Une fois ... l'audio est comme environ 30 secondes. Mais ça ne joue pas du tout. Quand le mp3 a changé à l'autre, il a joué instantanément. – nithinreddy

1

Pour jouer lecteur multimédia ... nous avons besoin de deux classes .. supposons mainactivity.java est notre premier fichier .. ici nous définissons deux boutons - start_button & stop_button

mButton_start.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent mIntent=new Intent(MainActivity.this,maservice.class); 
     startService(mIntent); 

    } 
}); 
mButton_stop.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent mIntent=new Intent(MainActivity.this,maservice.class); 
     stopService(mIntent); 

    } 
}); 

maservice.java est notre un autre fichier java. Ici, nous définissons le lecteur multimédia et il devrait y avoir 3 méthodes: onCreate(), onStart(), onDestroy().

Voici le code:

MediaPlayer mPlayer; 
@Override 
public void onCreate() 
{ 
    super.onCreate(); 
    mPlayer=MediaPlayer.create(this, R.raw.kyun); 
    mPlayer.setLooping(true); 
} 
@Override 
public void onStart(Intent miIntent, int startid) 
{ 
    super.onStart(miIntent, startid); 
    mPlayer.start(); 

} 

@Override 
public void onDestroy() 
{ 
    super.onDestroy(); 
    mPlayer.stop(); 
} 

Nous devons également définir ces fichiers Java dans le fichier manifeste

  • mainactivity.java est défini à l'étiquette d'activité
  • mais maservice.java est défini sous l'étiquette de service
+0

dans mon cas démarrage mediaPlayer dans onCreate était le problème. J'ai vu votre code et l'ai réparé en commençant dans onStart. Je vous remercie –

Questions connexes