如何从非活动的类启动MediaPlayer?我需要一个对MainActivity的引用
MediaPlayer mp = MediaPlayer.create([WhatToPutHere], R.raw.cpiano);
mp.start();
答案 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();