package com.moliying.a60_mediaplayer;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* 播放本地程序内部的资源文件
* @param view
*/
public void playAppResFileClick(View view){
mediaPlayer = MediaPlayer.create(this,R.raw.a1);
mediaPlayer.start();
}
/**
* 播放SDCARD文件
* @param view
*/
public void playSDcardFileClick(View view){
String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)+"/xpg.mp3";
mediaPlayer = new MediaPlayer();
try {
//设置数据源
mediaPlayer.setDataSource(this, Uri.parse(path));
mediaPlayer.prepare();//准备,加载文件
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 播放网络文件
* @param view
*/
public void playInternetFileClick(View view){
mediaPlayer = new MediaPlayer();
String path ="http://cc.stream.qqmusic.qq.com/C100001Orf0q32GTFF.m4a?fromtag=52";
try {
//设置数据源
mediaPlayer.setDataSource(this,Uri.parse(path));
//设置音频流类型,默认是系统会自动判断流类型,必须在prepare/prepareAsync之前调用
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// mediaPlayer.prepare();
mediaPlayer.prepareAsync();//异步准备,加载,此方法调用会立即返回
Toast.makeText(MainActivity.this, "正在缓冲音乐...", Toast.LENGTH_SHORT).show();
// mediaPlayer.start();
//设置异步准备的回调监听接口
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Toast.makeText(MainActivity.this, "缓冲完成,开始播放", Toast.LENGTH_SHORT).show();
//此方法会在异步准备完成之后调用
mp.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//退出程序时释放资源
// if(mediaPlayer!=null){
// mediaPlayer.release();
// mediaPlayer = null;
// }
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.moliying.a60_mediaplayer.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放程序内部的文件"
android:onClick="playAppResFileClick"
android:id="@+id/button" android:layout_alignParentTop="true"
android:layout_alignParentStart="true" android:layout_alignParentEnd="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放本地系统文件"
android:onClick="playSDcardFileClick"
android:id="@+id/button2" android:layout_below="@+id/button"
android:layout_alignParentStart="true" android:layout_alignParentEnd="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放网络文件"
android:onClick="playInternetFileClick"
android:id="@+id/button3" android:layout_below="@+id/button2"
android:layout_alignParentStart="true" android:layout_alignParentEnd="true"/>
</RelativeLayout>