[英]How can I play the mp3 file from Environment.DIRECTORY_DOWNLOADS
我從 Url 下載了 mp3 文件,並通過以下代碼將其保存在 Environment.DIRECTORY_DOWNLOADS 中:
request.setDestinationInExternalFilesDir(MainActivity.this, Environment.DIRECTORY_DOWNLOADS,"d1.mp3");
我檢查了文件可以正確下載。 現在我想播放這個 d1.mp3 文件,但是當我按下播放按鈕時,它沒有開始播放音樂! 當我使用“setDataSource”時,看起來我有問題。 如果您檢查我的代碼並讓我犯錯,我將不勝感激。
private void initMediaPlayer()
{
String PATH_TO_FILE = Environment.DIRECTORY_DOWNLOADS + "/d1.mp3";
mp = new MediaPlayer();
try {
mp.setDataSource(PATH_TO_FILE);
mp.prepare();
Toast.makeText(this, PATH_TO_FILE, Toast.LENGTH_LONG).show();
stateMediaPlayer = stateMP_NotStarter;
textState.setText("- IDLE -");
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
stateMediaPlayer = stateMP_Error;
textState.setText("- ERROR!!! -");
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
stateMediaPlayer = stateMP_Error;
textState.setText("- ERROR!!! -");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
stateMediaPlayer = stateMP_Error;
textState.setText("- ERROR!!! -");
}
}
public void play(View view) {
initMediaPlayer();
mp.start();
}
您應該使用getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
(用於應用程序下載)或Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
作為下載文件的完整路徑。
我知道它遲到了,但我遇到了同樣的問題,我在設置 DataSource 后通過在代碼中添加一行來解決它
mp.setDataSource(PATH_TO_FILE);
添加 PrepareAsync
mp.prepareAsync();
這為我解決了這個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.