音频播放器—MediaPlayer
1.日常生活中听到的数码声音即音频,主要格式有(MP3,3GPP,Ogg和,WAWE)等,通常看到的视频主要有(3GP 和mpeg-4)
2.再Android中提供了一个MediaPlayer类,使用该类可以轻松播放音乐,只需要指定播放的音频调用相应的方法即可,以下列出常用方法
1.MediaPlayer支持三种不同的媒体来源:
① 本地资源
② 内部的URI,比如你可以通过ContentResolver来获取
③ 外部URL(流) 对于Android所支持的的媒体格式列表
2.常用方法
create():创建一个要播放的多媒体setDataSource():设置数据来源prepare():准备播放start():开始播放stop():停止播放pause():暂停播放reset():恢复MediaPlayer到未初始化状态
3.其他方法
getCurrentPosition():得到当前的播放位置getDuration():得到文件的时间getVideoHeight():得到视频高度getVideoWidth():得到视频宽度isLooping():是否循环播放isPlaying():是否正在播放prepare():准备(同步)prepareAsync():准备(异步)release():释放MediaPlayer对象reset():重置MediaPlayer对象seekTo(int msec):指定播放的位置(以毫秒为单位的时间)setAudioStreamType(int streamtype):指定流媒体的类型setDisplay(SurfaceHolder sh):设置用SurfaceHolder来显示多媒体setLooping(boolean looping):设置是否循环播放
4.实现音频播放的步骤
① 添加音频资源(存放在res目下的raw包下-手动创建)
② 创建MediaPlayer对象(两种方式)
使用MediaPlayer类提供的静态方法create来创建MediaPlayer对象,语法格式如下
MediaPlayer mediaplayer = MediaPlayer.create(this,R.raw.hls)
参数说明:
参数1:设备上下文,直接用this指定
参数2:需要播放音频的资源文件通过无参构造方法创建MediaPlayer对象(用着这种方法时,需单独指定装载的资源文件,这里MediaPlayer提供了一个setDateSource
方法,此方法用于指定文件位置,真正装载文件还需要调用prepare方法)例如下边代码
MediaPlayer player = new MediaPlayer();try {player.setDataSource("/music/attition.mp3"); //设置播放文件具体路径player.prepare();//装载播放文件} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}
③开始播放音频,利用MediaPlayer提供的start()
方法,
④ 播放途中暂停,利用MediaPlayer提供的pause()
方法,
⑤ 停止播放音频,利用MediaPlayer提供的stop()
方法,
实例-创建简易播放器
xml文件-三个按钮
<LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}"android:orientation="vertical"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="音频播放"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="开始播放"/><Buttonandroid:id="@+id/btn_pause"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="暂停播放" /><Buttonandroid:id="@+id/btn_stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="停止播放"/></LinearLayout></LinearLayout>
效果:::
java文件
public class MadioActivity extends Activity {MediaPlayer mediaplayer;private Button btn_start,btn_pause,btn_stop;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_madio);//引入音频文件mediaplayer = MediaPlayer.create(this,R.raw.m1);btn_start=(Button) findViewById(R.id.btn_start);btn_pause=(Button) findViewById(R.id.btn_pause);btn_stop=(Button) findViewById(R.id.btn_stop);btn_start.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmediaplayer.start(); //开始播放音频}});btn_pause.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmediaplayer.pause(); //暂停播放音频}});btn_stop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmediaplayer.stop();//停止播放音频}});}}
注意:停止之后,不能再次播放了