MediaPlayer是Android系统自带的,可以用来播放音频、视频和流媒体。MediaPlayer包含了Audio和Video的播放功
方法
说明
create
创建一多媒体
getCurrentPosition
当前播放位置
getDuration
文件的总时间
getVideoHeight
视频的高度
getVideoWidth
视频的宽度
isLooping
是否循环播放
isPlaying
是否正在播放
start
开始播放
pause
暂停
prepare
准备(同步)
prepareAsync
准备(异步)
stop
停止播放
release
释放相关资源
reset
重置
seekTo
指定
setAudioStreamType
设置类型
setDataSource
设多媒体数据来源
setDisplay
设置显示多媒体的载体
setLooping
是否循环播放
setOnButteringUpdateListener
网络流媒体的缓冲监听
setOnErrorListener
错误信息监听
setOnVideoSizeChangedListener
视频尺寸监听
setScreenOnWhilePlaying
设置是否保持屏幕常亮
setVolume
设置音量
创建一个MediaPlayer对象,实现start()方法,便可以简单播放音乐
mPlayer = MediaPlayer.create(this, R.raw.summer);
mPlayer.start();
先创建MediaPlayer对象;
调用setDataSource()方法来设置音频文件来源;
再调用prepare()/prepareAysnc()方法进行准备;
调用start方法就可以播放音频。
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(file.getAbsolutePath());
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.prepareAsync();
//setOnPreparedListener(this)实现的方法
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
}
MediaPlayer实现了四个不同setDataSource()方法
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)
可以从路径,raw,Assets,网络等加载
简单实现一个带进度条的音乐播放器
布局文件很简单,一个进度条,三个按钮
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="歌曲名"
android:textSize="20dp"/>
<SeekBar
android:id="@+id/seek_bar_music"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="0"
android:progress="0" />
<Button
android:id="@+id/btn_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="播放" />
<Button
android:id="@+id/btn_pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="暂停" />
<Button
android:id="@+id/btn_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="停止" />
</LinearLayout>
具体实现
点击播放按钮进行播放
case R.id.btn_play:
if (mPlayer != null) {
mPlayer.release();
mPlayer = null;
}
mPlayer = new MediaPlayer();
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setOnPreparedListener(this);
try {
mPlayer.setDataSource(url);
} catch (Exception e) {
e.printStackTrace();
}
mPlayer.prepareAsync();
break;
OnPrepared准备完成之后,开始播放
//setOnPreparedListener(this)实现的方法
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
timer();
}
点击暂停或停止按钮,暂停或结束播放
case R.id.btn_pause:
if (mPlayer.isPlaying()) {
mPlayer.pause();
}
break;
case R.id.btn_stop:
if (mPlayer != null) {
mPlayer.stop();
mPlayer.reset();
}
break;
手机扫一扫
移动阅读更方便
你可能感兴趣的文章