如何从不是 Activity 的类中启动 MediaPlayer?我需要参考我的 MainActivity
MediaPlayer mp = MediaPlayer.create([WhatToPutHere], R.raw.cpiano);
mp.start();
将媒体播放器创建为public static
,并通过将类名与媒体播放器对象一起使用,您可以在任何地方启动媒体播放器,无论是在 Java 类中还是在 Activity 中。
是的,当然可以。这是一个例子:
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);
它引用了一个活动,因此您可以在 Activity 类中:
public static Activity activity;
然后在你的课堂上你可以得到那个活动:
MediaPlayer mediaPlayer = MediaPlayer.create(ActivityClassName.activity, R.);
mediaPlayer.start();