0
votes

Pourquoi MediaPlayer s'arrête sur l'application de redémarrage de l'application à Android?

J'ai apporté une application Soundboard et ça marche mais quand j'appuie sur le bouton Accueil sur le téléphone et Je clique ici pour apporter une application de retour, lorsque j'appuyez sur un bouton pour le son, il cesse de fonctionner (accidents) xxx pré>

mon erreur logcat = strong> p>

Process: soundboard.test, PID: 5429
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference
        at soundboard.test.MainActivity$6.onClick(MainActivity.java:96)
        at android.view.View.performClick(View.java:4780)
        at android.view.View$PerformClick.run(View.java:19866)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5293)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)


0 commentaires

4 Réponses :


2
votes

Avez-vous donné les autorisations requises? Vérifiez-le et s'il vous plaît ajouter un autre code au stockage, etc. ou si le problème est le problème de vie d'activité, ajoutez simplement ce code

@Override
public void onRestart()
{
    super.onRestart();
     recreate();
    finish();
    overridePendingTransition(0, 0);
    startActivity(getIntent());
    overridePendingTransition(0, 0);
}


3 commentaires

C'est la principale et c'est tous les codes que j'ai plus de codes, mais ils sont les mêmes mp2, mp3, je suis débutant, je ne suis donc pas sûr de quel type d'autorisations dois-je ajouter.


Vérifiez ce code et essayez de comprendre les choses comme comment MediaPlayer fonctionne comment les autorisations sont données etc. Simplifiedcoding .NET / Audio-Enregistrement-Android-Exemple


Le code a fonctionné maintenant, il ne s'effondre plus. Merci.



0
votes

Le lecteur multimédia est défini sur NULL lorsque l'application va à l'arrière-plan, mais pas recréé lorsque l'activité est reportée au premier plan ( Oncreate () n'est pas appelé). Vous devez gérer l'initialisation et la destruction d'objets dans des rappels appariés du cycle de vie, comme

  • Oncreate () et OnDestroy ()

  • OnStart () et OnStop ()

  • Onresume () et Onpaause ()


2 commentaires

Y a-t-il une chance que vous puissiez m'écrire une seule ligne du code si vous avez du temps depuis que je ne sais pas comment mettre en œuvre cela dans mon code, je serais vraiment reconnaissant.


Par exemple, vous pouvez déplacer le mp = ... ligne sur Onstart () au lieu de Oncreate ()



0
votes

Vous devez comprendre Activité Lifecycle Code> et les autorisations nécessaires aux fichiers audio.
Si j'étais vous, j'utiliserais ci-dessous des autorisations.

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />  


0 commentaires

0
votes

Ajouter la méthode onResume comme ci-dessous

 @Override
        protected void onResume() {
            super.onResume();
            if (mp != null) {
                //if want to start again when open app
                mp.start();

                //play when click button
    //            iaminevitable.setOnClickListener(new View.OnClickListener() {
    //                @Override
    //                public void onClick(View view) {
    //                    mp.start();
    //                }
    //            });
            }
        }


0 commentaires