实现SD中指定音频文件的播放、暂停、停止。
音频–>MainActivity.class:
package com.superxingyun.playautiotest;
import android.media.MediaPlayer;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.File;
import java.io.IOException;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button play,pause,stop;
private MediaPlayer mediaPlayer = new MediaPlayer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* MediaPlayer常用方法
* 方法名 功能描述
* setDataSource() 设置要播放的音频文件的位置
* prepare() 在开始播之前调用这个方法完成准备工作
* stare() 开始或者继续播放音频
* pause() 暂停播放音频
* reset() 将MediaPlayer对象重置到刚刚创建的状态
* seekTo() 从指定的位置开始播放音频
* stop() 停止播放音频,调用这个方法后的MediaPlayer对象无法再次播放音频
* release() 释放掉与MediaPlayer对象相关的资源
* isPlaying() 判断当前MediaPlayer是否正在播放音频
* getDuration() 获取载入的音频文件的时长
*/
play = (Button) findViewById(R.id.play);
pause = (Button) findViewById(R.id.pause);
stop = (Button) findViewById(R.id.Stop);
play.setOnClickListener(this);
pause.setOnClickListener(this);
stop.setOnClickListener(this);
initMediaPlayer();//初始化MediaPlayer
}
private void initMediaPlayer() {
try {
File file = new File(Environment.getExternalStorageDirectory(), "music.mp3");
mediaPlayer.setDataSource(file.getPath());//设置要播放的音频文件的位置
mediaPlayer.prepare();//让MediaPlayer进入到准备状态
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.play:
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();//开始播放
}
break;
case R.id.pause:
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();//暂停播放
}
break;
case R.id.stop:
if (mediaPlayer.isPlaying()) {
mediaPlayer.reset();//停止播放
initMediaPlayer();
}
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mediaPlayer.stop();//停止播放并且释放掉与mediaPlayer对象的相关资源
mediaPlayer.release();
}
}
视频–>
MainActivity.class
package com.superxingyun.playvideotest;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.VideoView;
import java.io.File;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private VideoView videoView;
private Button play,pause,replay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* Video View
* 方法名 功能描述
* setVideoPath() 设置要播放的视频文件的路径
* start() 开始或继续播放视频
* pause() 暂停播放视频
* resume() 将视频重头播放
* seekTo() 从指定的位置开始播放视频
* isPlaying() 判断当前是否正在播放视频
* getDuration() 获取载入的视频文件的时长
*/
play = (Button) findViewById(R.id.play);
pause = (Button) findViewById(R.id.pause);
replay = (Button) findViewById(R.id.replay);
videoView = (VideoView) findViewById(R.id.video_view);
play.setOnClickListener(this);
pause.setOnClickListener(this);
replay.setOnClickListener(this);
initVideoPath();
}
private void initVideoPath() {
File file = new File(Environment.getExternalStorageDirectory(), "movie.mp4");
videoView.setVideoPath(file.getPath());//指定视频文件的路径
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.play:
if (!videoView.isPlaying()) {
videoView.start();//开始播放
}
break;
case R.id.pause:
if (videoView.isPlaying()) {
videoView.pause();//暂停播放
}
break;
case R.id.replay:
if (videoView.isPlaying()) {
videoView.resume();//重新播放
}
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (videoView != null) {
videoView.suspend();//释放资源
}
}
}