首页 > 代码库 > 安卓学习之音频、视频
安卓学习之音频、视频
播放音频
android中播放音频可以使用MediaPlayer类来实现,一下是它的一些方法:
方法名 功能描述
setDataSource() 设置要播放的音频文件的位置。
prepare() 在开始播放之前调用这个方法完成准备工作。
start() 开始或继续播放音频。
pause() 暂停播放音频。
reset() 将 MediaPlayer 对象重置到刚刚创建的状态。
seekTo() 从指定的位置开始播放音频。
stop() 停止播放音频。调用这个方法后的 MediaPlayer 对象无法再播放音频。
release() 释放掉与 MediaPlayer 对象相关的资源。
isPlaying() 判断当前 MediaPlayer 是否正在播放音频。
getDuration() 获取载入的音频文件的时长。
现在给出一段代码:
public class MainActivity extends Activity implements View.OnClickListener { private Button play; private Button pause; private Button stop; /* MediaPlayer class can be used to control playback of audio/video files and streams. */ private MediaPlayer mediaPlayer = new MediaPlayer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); stop = (Button) findViewById(R.id.stop); //初始化mediaPlayer initMediaPlayer(); //设置响应 play.setOnClickListener(this); pause.setOnClickListener(this); stop.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.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; default: break; } } @Override protected void onDestroy() { if(mediaPlayer != null){ mediaPlayer.release(); } super.onDestroy(); } private void initMediaPlayer() { File file = new File(Environment.getExternalStorageDirectory(), "test.mp3"); try { mediaPlayer.setDataSource(file.getPath()); // 指定音频文件的路径 mediaPlayer.prepare(); // 让MediaPlayer进入到准备状态 //Toast.makeText(MainActivity.this, "succeed", Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } }}
先MediaPlayer.setDataSource设置音频的具体位置,然后调用mediaPlayer.prepare()方法,表明MediaPlayer已经准备好。然后可以调用MediaPlayer的start()、pause()、reset()分别开始音频、暂停音频、重置MediaPlayer到创建状态。
当然要注意的是,我们读取的是SD卡上的数据,要设置
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
播放视频
播放视频可以使用VideoView类实现,这个类显示和控制都有。
方法名 功能描述
setVideoPath() 设置要播放的视频文件的位置。
start() 开始或继续播放视频。
pause() 暂停播放视频。
resume() 将视频重头开始播放。
seekTo() 从指定的位置开始播放视频。
isPlaying() 判断当前是否正在播放视频。
getDuration() 获取载入的视频文件的时长。
VideoView使用方法和MediaPlayer类似。
安卓学习之音频、视频