MediaPlayer音频/视频播放
播放视频和音频文件核心类库android.media.MediaPlayer,支持多种格式,如.mp4、.3gp、.ogg、.mp3、.mp4a、.webm。
使用步骤:
(1)创建MediaPlayer实例
(2)设置要播放的文件:SD卡资源
(3)调用MediaPlayer控制方法
(4)设置播放器的监听器
MediaPlayer
-
创建
-
1
MediaPlayer mp=new MediaPlayer()
-
-
设置要播放的文件
-
1 2
mp.setDataSource(Address)//可以是网上也可以本地 mp.create(this,R.raw.test)//自身资源
-
- 调用控制方法
- prepare()同步
- prepareAsync()异步
- 监听器
- setOnCompletionListener()
- setOnErrorListener()
- …
- 播放
1
2
3
4
5
6
start();
pause();
stop();
seekTo();
release();
reset();//重置/从错误中恢复
Looper、Handle
Looper和Handle用法
(1)Looper:用来封装消息循环和消息队列,用于在android线程中进行消息处理
(2)Handler:可以看做是一个工具类,用来向消息队列中插入消息
线程绑定Looper,Looper绑定Handler
默认情况下,Handler会与其被定义时所在线程的Looper绑定
Handler的handleMessage()消息处理的具体逻辑定义在此方法之内
Handler的sendMessages向消息队列发送消息
Handler的removeMessages销毁队列中的消息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
HandlerThread thread=new HandlerThread("");
thread.start();//一定要先执行
MyHandler myhandler=new MyHandler(thread.getLooper());
Message msg=myhandler.obtainMessage();
Bundle b=new Bundle();
b.putInt("age",20);
msg.setData(b);
msg.sendToTarget;
class MyHandler extends Handler
{
//构造函数
...
//重载
@override
public void handleMessage(Message msg)
{
Bundle b=msg.getData;
...
}
}