以播放音频为例:是否有读写SD卡的权限,没有就申请,要重写onRequestPermissionsResult()方法,有就进行操作。先创建一个对象MediaPlayer mMediaPlayer = new MediaPlayer();在进行点击按钮的时候,先判断音频是否在播放isPlaying(),然后是音频的各种方法
start()//开始播放,
mMediaPlayer.pause();//暂停播放,
mMediaPlayer.reset();//停止播放,重置为刚创建状态
关闭程序的时候要释放播放的资源释放资源要在获得销毁的方法onDestroy()内进行:
mMediaPlayer.stop();
mMediaPlayer.release();,
还要添加读写SD卡的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
播放视频和播放音频大致一样,添加的权限也一样,不过用到VideoView控件,该控件和其余UI控件一样使用,setVideoPath(file.getPath()),利用该方法将视频资源的文件路径放进去,就可获得该视频,
mVvShow.start();//开始播放
mVvShow.pause();//暂停播放
mVvShow.resume();//重新播放
mVvShow.suspend();//释放掉资源
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1); }else { try {
File file = new File("/mnt/sdcard/aa.mp3");
mMediaPlayer.setDataSource(file.getPath());//指定音频文件的路径
mMediaPlayer.prepare();//音频文件进入准备状态
} catch (IOException e) {
e.printStackTrace();
} }
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 1: if (grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ try {
File file = new File("/mnt/sdcard/aa.mp3");
mMediaPlayer.setDataSource(file.getPath());//指定音频文件的路径
mMediaPlayer.prepare();//音频文件进入准备状态
} catch (IOException e) {
e.printStackTrace();
} }else { Toast.makeText(this, "权限获取失败", Toast.LENGTH_SHORT).show(); finish(); } break; default: break; } }