Android MediaPlayer 中Context的传递

最近在整理代码,将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());
}

 

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值