Cómo pasar Activity.class (este) a un método? (Androide)

Takuya2412:

En mi clase MainActivity tengo esta pequeña función para reproducir música

MediaPlayer player1;
if(player1 == null){
            player1 = MediaPlayer.create(this, R.raw.song1);
            player1.start();
        }

Funciona muy bien, pero quiero usar esto para otra activty también, así que creó una clase Reproductor Musical

MediaPlayer player;

    public void play(Context c, @RawRes int sound){
        if (player == null){
            player = MediaPlayer.create(c, sound);
        }
        player.start();
    }

Así que lo que quiero hacer es, para pasar una R.raw.songal play()método. Podría pasar por el parámetro@RawRes int sound

Lo que mi problema es, ¿puedo pasar this?

He intentado esto en mi clase MainActivity

MusicPlayer playboy;

playboy.play(this, R.raw.song1);

Pero me da un error:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.japan, PID: 32764
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.japan/com.example.japan.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.japan.Helper.MusicPlayer.play(android.content.Context, int)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3333)

También probé a pasar MainActivity.this, pero mismo error. ¿Qué estoy haciendo mal?

Gurgen Gevondov:

Es necesario crear el objeto Reproductor Musical primero. Prueba este código en tu clase MainActivity

MusicPlayer playboy = new MusicPlayer();
playboy.play(this, R.raw.song1);

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=404476&siteId=1
Recomendado
Clasificación