以播放音頻為例:是否有讀寫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; } }