2017-07-22 1 views
0

Je ne sais pas vraiment pourquoi mon Media Player provoque l'application l'accident chaque fois que je clique sur mon bouton de lecture. Le code est ci-dessous (excusez les noms de variables stupides).Android lecteur multimédia se écrasant application

package com.example.daud.myapplication; 

import android.media.MediaPlayer; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class player_try_2 extends AppCompatActivity { 
    MediaPlayer playerOfSong; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_player_try_2); 
    } 


    public void playTheSong(){ 
      playerOfSong = MediaPlayer.create(this, R.raw.test1); 
      playerOfSong.start(); 

    } 
} 

La méthode playTheSong() est réglé sur la onClick pour mon bouton. Au lieu de coder cela, je l'ai fait à travers les propriétés du bouton en mode design. Le fichier R.raw.test1 contient un fichier mp3.

Toute aide avec ceci est super appréciée. Merci.

LogCat montre ce que l'erreur:

07-22 00:22:52.790 11650-11650/com.example.daud.myapplication E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.daud.myapplication, PID: 11650 
    java.lang.IllegalStateException: Could not find method playTheSong(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button' 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327) 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) 
     at android.view.View.performClick(View.java:6219) 
     at android.view.View$PerformClick.run(View.java:24482) 
     at android.os.Handler.handleCallback(Handler.java:769) 
     at android.os.Handler.dispatchMessage(Handler.java:98) 
     at android.os.Looper.loop(Looper.java:164) 
     at android.app.ActivityThread.main(ActivityThread.java:6540) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
+0

appel 'playerOfSong.prepare()' 'avant start' –

+0

J'ai essayé cela. Même résultat – doddy

Répondre

0

Vous devez passer un paramètre View

Pour ce faire,

public void playTheSong(View v){ 
     playerOfSong = MediaPlayer.create(this, R.raw.test1); 
     playerOfSong.start(); 

} 
+0

J'étais/suis et cela l'a réparé. Merci beaucoup. Ma réputation sur stackoverflow n'est pas suffisante pour pouvoir voter, mais merci! – doddy