[英]Android - How To Use MediaPlayer With mp3 From Device?
public void getNewStartingPoint() {
path = "/mnt/sdcard/downloads/bluetooth/aabbccdd.mp3";
try {
mp.setDataSource(path);
mp.prepare();
mp.start();
} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
}
}
似乎所有教程都向您展示了如何從sdcard上傳歌曲,但是這些都是程序員定義的位置。 我想知道如何使用用戶電話中可以決定預覽的歌曲。 還要說例如我只想播放一首歌曲30秒。 在一段時間后,我可以使用什么方法停止播放歌曲。 我嘗試使用計時器,但沒有用。
所以
問題1.用戶如何從自己的SD卡中選擇歌曲,
問題2。如何設置播放時間的限制。
您可以使用
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//Stop the MediaPlayer here
}
}, 30*1000);
為了使您的用戶選擇可以構建自己的FileManager的文件,可以在以下其他問題上找到一些幫助: Android編程:從哪里開始創建簡單的文件瀏覽器?
更新
嘗試這種方式來更改您的預覽歌曲
mp.stop();
mp.reset();
Uri url = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.1);
File songFile = new File(url.toString());
mp.setDataSource(songFile.getPath());
mp.prepare();
public void getNewStartingPoint() {
mp = MediaPlayer.create(this, R.raw.aabbccdd);
try {
mp.seekTo(newStartingPoint);
mp.start();
theOtherStopWatch++;
} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
}
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
mp.pause();
}
}, hTMill);
}
可能缺少一些東西..但是您可以看到是否調用了該方法。 歌曲只會在計時器計時時停止或暫停。 當按下另一個按鈕時,無法立即停止曲目。 它好像我想讓計時器在按下下一個按鈕停止時停止並且不允許播放上一個按鈕被按下的軌道。 但是我想按下按鈕的動作來開始新的曲目並停止最后的曲目。 而不是僅僅開始新的曲目並依靠計時器來停止曲目。
希望你能理解..
與你之上
anotherString = "R.raw.aabbccdd";
fileName = "android.resource://" + getPackageName() + "/"
+ anotherString;
mp.setDataSource(path);
mp.setDataSource(this, Uri.parse(fileName));
mp.prepare();
可以..但是當您停止跟蹤,重置並重新准備時,它會減慢該過程..似乎可以更快地工作。
mp = MediaPlayer.create(this, R.raw.aabbccdd);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.