最近在整理代码,将MediaPlayer 播发器封装自定义类,遇到了setDataSource(context, uri)中context需要传递的问题,在Android中,Context是一种抽象类,它直接继承了Object,它由Android系统来实现,它可以得到一个应用程序的运行环境。但只能在activity,broadcasting,等中获得,如果要在其他一般类中使用context,需要进行传递。
原主类中直接使用单前context
mediaPlayer.setDataSource(context:this, Uri.parse(path));
//mediaPlayer.setDataSource(getApplicationContext(), Uri.parse(path));
自定义类中不可直接使用,需要进行值传递:
修改后的自定义类:
public class MyMediaPlayer{
private Context context;
//结构函数传值
public MyMediaPlayer(Context context){
this.context = context;
}
public void initMediaPlayer(){
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(context);
}
}
修改后的主类:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
//private BaseAdapter adapter;
myMediaPlayer = new MyMedioPlayer(getApplicationContext());
}
1195

被折叠的 条评论
为什么被折叠?



