Android中用MediaPlay播放音訊和影片
在播放音訊中SoundPool是個很好用的類,但是SoundPool只能播放音訊,且通常只用來播放較短的音訊,這就需要另外的類來實現影片和長音訊的播放,那就是MediaPlay
實現MediaPlay的基本步驟是
-
建立MediaPlay物件
-
呼叫setDataSource物件這是音訊檔案路徑
-
呼叫prepare載入音訊
-
呼叫start開始播放
-
呼叫pause暫停
-
呼叫stop停止播放
而MediaPlay也有其他方法
-
getCurrentPosition,獲得當前播放位置
-
getDuration,獲得播放時長
-
isPlay,判斷是否處於播放狀態
-
release,釋放資源
-
reset,回到最初的狀態
-
seekTo,設定播放位置
-
setVolume,設定音量
private MediaPlayer mediaPlayer=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mediaPlayer=new MediaPlayer(); if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1); }else{ initMediaPlayer(); } Button btPlayMp3= (Button) findViewById(R.id.btPlayMp3); btPlayMp3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(!mediaPlayer.isPlaying()){ mediaPlayer.start(); } } }); Button btPauseMp3= (Button) findViewById(R.id.btPauseMp3); btPauseMp3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(mediaPlayer.isPlaying()){ mediaPlayer.pause(); } } }); Button btStopMp3= (Button) findViewById(R.id.btStopMp3); btStopMp3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(mediaPlayer.isPlaying()){ mediaPlayer.stop(); try { mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } } } }); } private void initMediaPlayer(){ try { File file=new File(Environment.getExternalStorageDirectory()+"/music","honor.mp3"); mediaPlayer.setDataSource(file.getPath()); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if(requestCode==1){ if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){ initMediaPlayer(); }else{ Toast.makeText(this,"未獲得SD卡訪問許可權",Toast.LENGTH_LONG).show(); finish(); } } } @Override protected void onDestroy() { if(mediaPlayer!=null){ mediaPlayer.stop(); mediaPlayer.release(); mediaPlayer=null; } super.onDestroy(); }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2680621/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android中用SoundPool播放音訊Android音訊
- Android 音視訊開發 - 使用AudioTrack播放音訊Android音訊
- 使用QMediaPlayer播放音訊音訊
- js中用oop思想封裝輪播JSOOP封裝
- 短影片直播系統,Android卡片式輪播Android
- 解放音影片應用的未來!Introducing HoloWAN
- Android 和 iOS 圖片輪播AndroidiOS
- 如何實現 Android 短影片跨頁面的流暢續播?Android
- python實現播放音訊和錄音功能示例程式碼Python音訊
- 揭秘盒馬鮮生 Android 短影片秒播最佳化方案Android
- 七、FFmpeg 4.0.2 + SDL2 播放音訊音訊
- Android BroadcastReceiver(廣播)AndroidAST
- Android - BroadcastReceiver 廣播AndroidAST
- Laravel-admin toastr 訊息提醒、播放音訊、點選跳轉LaravelAST音訊
- Android中用Kotlin Coroutine(協程)和Retrofit進行網路請求和取消請求AndroidKotlin
- Android中的廣播使用Android
- 如何搭建小型影片點播網站網站
- 電腦播放影片沒有聲音是什麼原因 電腦播放音訊有個紅叉的解決方法音訊
- 揭祕盒馬鮮生 Android 短視訊秒播優化方案Android優化
- 廣播訊息
- matlab-播放音樂Matlab
- 正向傳播和反向傳播反向傳播
- Java中用Aeron實現UDP訊息傳遞JavaUDP
- android藍芽BLE(三) —— 廣播Android藍芽
- android 使用 SoundPool 語音播報Android
- 影片號直播(微信影片號直播PC端開播條件)
- 阿里雲影片點播轉碼 舊版阿里
- 音訊和影片無法在PowerPoint中播放音訊
- 音訊和影片同步工具:Red Giant PluralEyes for Mac音訊Mac
- Red Giant PluralEyes for Mac(音訊和影片同步工具)Mac音訊
- fcpx外掛:WindRemover AI(影片和播客風聲消除外掛) v1.0.6REMAI
- 百度影片在Android和iOS端效能測試方法AndroidiOS
- 影片豪橫時代,應用如何快速構建影片點播能力?
- Android輪播圖從0到1Android
- Android廣播之靜態註冊Android
- zFuse Pro for MacSPlayer Pro輕播影片播放器Mac播放器
- 騰訊影片怎麼錄屏,騰訊影片怎麼截長影片
- iOS/Android 影片編輯SDKiOSAndroid