0

如何从不是 Activity 的类中启动 MediaPlayer?我需要参考我的 MainActivity

MediaPlayer mp = MediaPlayer.create([WhatToPutHere], R.raw.cpiano);
    mp.start();
4

3 回答 3

1

将媒体播放器创建为public static,并通过将类名与媒体播放器对象一起使用,您可以在任何地方启动媒体播放器,无论是在 Java 类中还是在 Activity 中。

于 2013-08-04T13:57:26.063 回答
0

是的,当然可以。这是一个例子:

class mMP {
        private Context _context;
        private _resId;
        public mMP(Context context,int resId){
            this._context=context;
            this._resId=resId;
        }
        public void playSong(){
            MediaPlayer mp=MediaPlayer.create(_context, _resId);
            if(mp!=null)
                mp.start();
        }
    }

然后从 Activity、Service 或 BroadcastReceiver 调用它:

new mMP(this,id).playSong();

或使静态无效,如:

 class yourClass{public static void playMusic(Context c,int resId){MediaPlayermp=MediaPlayer.create(c,resId);if(mp!=null) mp.start()}}

然后从 Activity 调用你的函数,...yourClass.playMusic(this,resId);

于 2013-08-04T14:41:56.170 回答
0

它引用了一个活动,因此您可以在 Activity 类中:

public static Activity activity;

然后在你的课堂上你可以得到那个活动:

MediaPlayer mediaPlayer = MediaPlayer.create(ActivityClassName.activity, R.);
mediaPlayer.start();
于 2017-02-15T03:07:57.560 回答