Android MediaPlayer类 - MilkeZhang 的网络笔记

1. MediaPlayer方法MediaPlayer创建可以直接调用构造函数,利用setDataSource()方法设置资源。MediaPlayer mp = new MediaPlayer(); // path可以是本地路径,也可以是网络地址 mp.setDataSource(String path);也可以调用create()方法,create()方法会直接调用prepare()方法。Med

Android MediaPlayer类

Android MediaPlayer类

阅读:384  点赞:0   留言:0


1. MediaPlayer方法
MediaPlayer创建
可以直接调用构造函数,利用setDataSource()方法设置资源。

MediaPlayer mp = new MediaPlayer();
// path可以是本地路径,也可以是网络地址
mp.setDataSource(String path);



也可以调用create()方法,create()方法会直接调用prepare()方法。

MediaPlayer.create(Context context, int resid)
MediaPlayer.create(Context context, Uri uri)


MediaPlayer的控制方法
prepare()/prepareAsync(),提供了同步和异步两种方式设置播放器进入prepare状态

start(),启动播放器播放
pause(),暂停播放器播放
stop(),停止播放器播放
getCurrentPosition(),当前播放器的时间
seekTo(int),从指定位置开始播放
release(),释放播放器暂用资源
reset(),是播放器重回到Idle状态
setLooping(boolean),设置是否循环播放
MediaPlayer的监听器
OnPreparedListener,prepare/prepareAsync结束时调用
OnCompletionListener,播放结束时调用
OnSeekCompleteListener,seekTo(int)结束时调用


MediaPlayer播放音频
在onCreate(Bundle)方法中创建MediaPlayer,在onDestroy()方法中销毁。

@Override
protected void onCreate(Bundle savedInstanceState) {
    ... ...

    mMediaPlayer = new MediaPlayer();
    MediaPlayerListener listener = new MediaPlayerListener();
    mMediaPlayer.setOnPreparedListener(listener);
    mMediaPlayer.setOnCompletionListener(listener);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    mMediaPlayer.release();
    mMediaPlayer = null;
}

private void createMediaPlayer() {
    mMediaPlayer.reset();

    try {
        AssetFileDescriptor fd = getAssets().openFd("demo.mp3");
        mMediaPlayer.setDataSource(fd.getFileDescriptor(),
                fd.getStartOffset(), fd.getLength());
        mMediaPlayer.prepare();
        mMediaPlayer.start();
    } catch (IOException e) {
        LogTool.loge(LOG_TAG, e);
    }
}

private void startMediaPlayer() {
    try {
        mMediaPlayer.start();
    } catch (IllegalStateException e) {
        LogTool.loge(LOG_TAG, e);
    }
}

private void pauseMediaPlayer() {
    try  {
        mMediaPlayer.pause();
    } catch (IllegalStateException e) {
        LogTool.loge(LOG_TAG, e);
    }
}

public void stopMediaPlayer() {
    try {
        mMediaPlayer.stop();
    } catch (IllegalStateException e) {
        LogTool.loge(LOG_TAG, e);
    }
}

private class MediaPlayerListener implements MediaPlayer.OnPreparedListener,
        MediaPlayer.OnCompletionListener {

    @Override
    public void onPrepared(MediaPlayer mp) {
    }

    @Override
    public void onCompletion(MediaPlayer mp) {
    }

}

编写于:2023/2/25 11:15:02
发布 IP 属地:

版权声明

本站内容均来自网络转载或网友提供,如有侵权请及时联系我们删除!本站不承担任何争议和法律责任!


艾金森

每一个童年的梦想都值得用青春去捍卫!




06-25关于最近key4421 的日记 2023/09/23 18:56:22微信放下摆烂法学生的摸鱼打工日常22023/08/30--周三雪尽染 的日记 2023/06/23 20:42:0223/06/04--音乐会/小鸟鲤子2023.5.15 清净心的愉悦2023.4.26 篮球日记 阴 没心情秋秋 的日记 2023/04/25 23:09:412023.4.18 阴你是否真正做到了?key4421 的日记 2023/09/222023/07/17--周一兄妹日常2020年12月17日雪尽染 的日记 2023/07/06 23:26:46追悔的年华 的日记 2023/07/15 01:32:19记一个大神兄妹日常2020年12月6日2023.5.23 (5)关于性格兄妹日常2020年12月8日完美的一周2023/5/25 复盘迷雾重重2023/6/27 复盘2023/4/20 复盘我的情有独钟款2023/06/02--周五--晴天Wish You Were Gay lyrics学习笔记 2 - 10 Common ADHD Symptoms in Adults (with real-life examples)Java Number & Math 类哎呀我头疼PDF转Excel十大发射点发生阿斯蒂芬《怒呛人生》2021年刑诉真题初步答题思路Wandlungen der Familie学习笔记 1 - Narcissists - 关于自我的属性炎热的夏季容易上火 日常应该如何预防以及护理满山的猴子我腚最红 的笔记 2023/05/30 16:18:46社科大考博Summary训练——2016年A卷平行时空就只为递过来一只耳机套?【成本加激励费用合同 】与【成本加奖励费用合同】 区别像蜡笔小新超声心动图 存档专心致志的努力-kom 的笔记 2023/06/12 10:10:17如何挑选食盐?人的不自知如何挑选酱油?满山的猴子我腚最红 的笔记 2023/07/08 21:20:13关于用户“PTY” 对大学疑问的回信2020-2023心情随笔记录整理js promise中如何取到[[PromiseValue]]好喜欢书单超爱这种动感十足的图片,细节拉满哈哈哈哈哈哈情绪流12015年画的电路板,记录一下