我試圖播放SD卡上的mp3音頻文件,使用路徑和音頻文件的文件名來獲取其Uri。Android MediaPlayer - 播放歌曲時出錯(1,-4)
我有一個Spinner
填充存儲在SD卡中的曲目名稱。 當選擇了一個項目,下面的代碼會被執行:
final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
OnItemSelectedListener listener = new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
TextView tv = (TextView) selectedItemView;
File file = new File(uri.getPath() + "/" + tv.getText().toString());
Log.i(TAG, "------------- PATH : " + file.getAbsolutePath());
Uri uri = Uri.fromFile(file);
MediaPlayer mP = new MediaPlayer();
try {
mP.setDataSource(context, uri);
mP.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.start();
}
});
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
mP.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
};
我收到以下錯誤:
08-21 16:16:37.099: I/MusicFileActivity(3940): ------------- PATH : /external/audio/media/antazirouka
08-21 16:16:37.159: W/MediaPlayer(3940): info/warning (1, 26)
08-21 16:16:37.159: E/MediaPlayer(3940): error (1, -4)
08-21 16:16:37.159: W/System.err(3940): java.io.IOException: Prepare failed.: status=0x1
08-21 16:16:37.169: W/System.err(3940): at android.media.MediaPlayer.prepare(Native Method)
08-21 16:16:37.169: W/System.err(3940): at com.example.project.MusicFileActivity$1.onItemSelected(MusicFileActivity.java:84)
08-21 16:16:37.169: W/System.err(3940): at android.widget.AdapterView.fireOnSelected(AdapterView.java:871)
08-21 16:16:37.169: W/System.err(3940): at android.widget.AdapterView.access$200(AdapterView.java:42)
08-21 16:16:37.169: W/System.err(3940): at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:837)
08-21 16:16:37.169: W/System.err(3940): at android.os.Handler.handleCallback(Handler.java:587)
08-21 16:16:37.169: W/System.err(3940): at android.os.Handler.dispatchMessage(Handler.java:92)
08-21 16:16:37.169: W/System.err(3940): at android.os.Looper.loop(Looper.java:123)
08-21 16:16:37.169: W/System.err(3940): at android.app.ActivityThread.main(ActivityThread.java:3687)
08-21 16:16:37.169: W/System.err(3940): at java.lang.reflect.Method.invokeNative(Native Method)
08-21 16:16:37.169: W/System.err(3940): at java.lang.reflect.Method.invoke(Method.java:507)
08-21 16:16:37.169: W/System.err(3940): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
08-21 16:16:37.169: W/System.err(3940): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
08-21 16:16:37.169: W/System.err(3940): at dalvik.system.NativeStart.main(Native Method)
沒有人有任何想法? 在此先感謝:)
是可以訪問的媒體文件,它是一個兼容的格式(如mp3?) – rydgaze
是的,它是可訪問的,它是一個MP3文件 – Hanady
@Hanady嘿,我正在開發一個音樂播放器我自己..你想分享的代碼你的均衡器??我可以分享你的代碼如何從互聯網取得它後在後臺顯示藝術家的圖像...... –