音频播放器—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对象(两种方式)

  1. 使用MediaPlayer类提供的静态方法create来创建MediaPlayer对象,语法格式如下
    MediaPlayer mediaplayer = MediaPlayer.create(this,R.raw.hls) 参数说明:
    参数1:设备上下文,直接用this指定
    参数2:需要播放音频的资源文件
  2. 通过无参构造方法创建MediaPlayer对象(用着这种方法时,需单独指定装载的资源文件,这里MediaPlayer提供了一个setDateSource方法,此方法用于指定文件位置,真正装载文件还需要调用prepare方法)例如下边代码
MediaPlayer player = new MediaPlayer();
	try {
		player.setDataSource("/music/attition.mp3");             //设置播放文件具体路径
		player.prepare();                                        //装载播放文件
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

③开始播放音频,利用MediaPlayer提供的start()方法,
④ 播放途中暂停,利用MediaPlayer提供的pause()方法,
⑤ 停止播放音频,利用MediaPlayer提供的stop()方法,

实例-创建简易播放器

xml文件-三个按钮

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}"
    android:orientation="vertical"
    android:gravity="center"
     >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="音频播放"
         />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"     
        >
        
        <Button
             android:id="@+id/btn_start"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:text="开始播放"
            />
        
        <Button
             android:id="@+id/btn_pause"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:text="暂停播放"             
            />
        
        <Button
             android:id="@+id/btn_stop"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:text="停止播放"
            />
        
    </LinearLayout>

</LinearLayout>

效果:::

Android mediaPlayer 网络不好播不出来 安卓mediaplayer播放器_播放音频


java文件

public class MadioActivity extends Activity {
	MediaPlayer mediaplayer;
	private Button btn_start,btn_pause,btn_stop;

	@Override
	protected 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() {			 
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				mediaplayer.start();        //开始播放音频
				
			}
		});
		btn_pause.setOnClickListener(new OnClickListener() {			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub				
					mediaplayer.pause();    //暂停播放音频				
			}
		});	
		btn_stop.setOnClickListener(new OnClickListener() {			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				mediaplayer.stop();     //停止播放音频
			}
		});		
	}	
}

注意:停止之后,不能再次播放了