从另一个类启动MediaPlayer

时间:2013-08-04 13:51:59

标签: java android

如何从非活动的类启动MediaPlayer?我需要一个对MainActivity的引用

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

3 个答案:

答案 0 :(得分:0)

创建媒体播放器为public static,通过使用媒体播放器对象的类名,您可以随时随地启动媒体播放器,无论是在Java类还是在活动中。

答案 1 :(得分: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);

答案 2 :(得分:0)

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

public static Activity activity;

然后在你的课堂上你可以参加那项活动:

MediaPlayer mediaPlayer = MediaPlayer.create(ActivityClassName.activity, R.);
mediaPlayer.start();