Android Media(多媒體)獲取手機記憶體卡下的音樂並播放
程式碼實現:
package com.example.g160628_android_27_media;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import java.io.IOException;
public class SdcardMactivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private SeekBar sb_main_bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sb_main_bar = (SeekBar) findViewById(R.id.sb_main_SeekBar);
//給進度條設定滑動監聽
sb_main_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//獲取當前進度條的位置
int currentPosition=seekBar.getProgress();
//跳轉到某個位置進行播放
mediaPlayer.seekTo(currentPosition);
}
});
}
public void playOrPause(View view){
final ImageButton imageButton= (ImageButton) view;
//例項化MediaPlayer
if(mediaPlayer==null){
//mediaPlayer = MediaPlayer.create(this, R.raw.s8);
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
String sdPath=Environment.getExternalStorageDirectory().getAbsolutePath();
mediaPlayer=new MediaPlayer();
//設定音訊流的型別
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//設定音源
try {
//mediaPlayer.setDataSource(this, Uri.parse("file://"+sdPath+"/s1.mp3"));
mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.77:7788/s11.mp3"));
mediaPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
//設定準備監聽
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
//暫停圖示
imageButton.setImageResource(android.R.drawable.ic_media_pause);
//獲取音樂的播放時間
int time=mediaPlayer.getDuration();
//設定進度條的最大值 為 音樂的播放時間
sb_main_bar.setMax(time);
new MyThread().start();
}
});
}
}else if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
//播放圖示
imageButton.setImageResource(android.R.drawable.ic_media_play);
}else{
mediaPlayer.start();
//暫停圖示
imageButton.setImageResource(android.R.drawable.ic_media_pause);
}
}
class MyThread extends Thread{
@Override
public void run() {
super.run();
while(sb_main_bar.getProgress()<sb_main_bar.getMax()){
//獲取音樂當前的播放位置
int currentPosition=mediaPlayer.getCurrentPosition();
sb_main_bar.setProgress(currentPosition);
}
}
}
}
相關文章
- Android多媒體之認識聲音、錄音與播放(PCM)Android
- Android入門(十六):手機多媒體Android
- 雲音樂 Android 記憶體監控探索篇Android記憶體
- Android懸浮窗--獲取記憶體Android記憶體
- OpenHarmony 3.2 Beta多媒體系列——音影片播放框架框架
- Android SD卡 路徑問題以及如何獲取SDCard 記憶體AndroidSD卡記憶體
- clementine for Mac多平臺音樂管理播放軟體Mac
- [Android多媒體技術] 播放Raw/Assets音視訊方法總結Android
- 獲取linux可用記憶體 剩餘記憶體Linux記憶體
- Android記憶體優化之記憶體快取Android記憶體優化快取
- C# DirectShow 播放多媒體C#
- PCI-5565系列反射記憶體卡 反射記憶體交換機反射記憶體
- Android多媒體之認識MP3與內建媒體播放(MediaPlayer)Android
- Android本地音樂播放Android
- 查詢windows記憶體卡槽及卡槽支援的最大記憶體Windows記憶體
- 媒體查詢@media的使用
- Android 多媒體之 Silk 格式音訊解碼Android音訊
- 獲取Linux 記憶體頁大小的命令Linux記憶體
- 手機記憶體都有哪些?宏旺半導體分享手機記憶體發展簡史記憶體
- 電腦倍速播放視訊不變調的軟體下載 | 手機倍速播放視訊最好的軟體(不變調且可以記憶倍速播放效果)
- 紅米手機怎麼清理手機記憶體?記憶體
- Android多媒體之SoundPool+pcm流的音訊操作Android音訊
- CSS @media 媒體查詢CSS
- Android多媒體之視訊播放器(基於MediaPlayer)Android播放器
- 智慧手機記憶體完全透析記憶體
- 直播軟體搭建,java程式碼獲取記憶體資訊Java記憶體
- 【多媒體之聲音總結】
- 手機記憶體卡大小的計算記憶體
- Linux下的多媒體軟體(轉)Linux
- Plex Media Server for Mac個人媒體軟體ServerMac
- Android -- 多媒體播放之MediaPlayer使用內部實現簡析Android
- android雙待手機獲取每一張SIM卡的imeiAndroid
- 多媒體播放器哪款值得入手?播放器
- OmniPlayer Pro for Mac(全能多媒體播放器)Mac播放器
- Win7自帶的多媒體軟體――Windows media Center到底有多強大Win7Windows
- 手機記憶體RAM、ROM簡介記憶體
- php-MediaInfo 獲取媒體資訊PHPAI
- android獲取手機ipAndroid