我試着讓用戶打開一個音頻文件並播放這個文件。但是,MediaPlayer.create()
方法返回null
。這裏是我的代碼:android:mediaplayer.create()返回null
MediaPlayer mediaPlayer;
public void start(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivityForResult(intent,1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK) {
Uri uri = data.getData();
mediaPlayer = MediaPlayer.create(this,uri);
//startThread();
mediaPlayer.start();
} else {
mediaPlayer.start();
}
}
我試過用mp3文件,我的設備沒有問題與其他玩家玩。 Uri我看起來像這樣"content://media/external/audio/media/137650"
我在做什麼錯了?
create()API如果以某種方式失敗,則返回null。 在這種情況下,原因是由於損壞的MP3文件。你嘗試過不同的文件嗎? –
確保您具有'READ_EXTERNAL_STORAGE'權限。這反過來又要求您申請運行時權限,如果您的'targetSdkVersion'爲23或更高,並且您正在測試Android 6.0或更高版本。您也可以檢查LogCat中是否有任何相關消息,因爲「MediaPlayer」傾向於在警告嚴重性的情況下記錄東西並且不會拋出異常。另外,不要在你的'else'塊中調用'mediaPlayer.start()',因爲你還沒有初始化'mediaPlayer'。 – CommonsWare
是的,正如我所說,其他玩家可以播放這些文件。他們肯定沒有腐敗 – Ginso