2016-03-24 242 views
0

今天,我製作了在Android中播放音樂的應用程序。MediaPlayer無法在Android中播放音頻

使用MediaPlayer播放音頻文件時我失敗了;它不能播放任何文件音頻。 此異常拋出登錄貓一樣:

E/MediaPlayer的:錯誤(1,-2147483648)

W/System.err的:產生java.io.IOException:準備失敗:狀態=爲0x1

W/System.err的:在android.media.MediaPlayer.prepare(本機方法)

此代碼顯示更多的信息;

mediaPlayer.prepare();

這個類有這樣一行:

public void playAudio() { 
    Intent intent = getIntent(); 
    fileName = (TextView) findViewById(R.id.file); 
    playBtn = (ImageButton) findViewById(R.id.play); 
    String chooseFiles = intent.getStringExtra("fileName"); 

    try { 
     mediaPlayer = new android.media.MediaPlayer(); 
     mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     mediaPlayer.setDataSource(chooseFiles); 
     mediaPlayer.prepare(); 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
    fileName.setText(fName.substring(chooseFiles.lastIndexOf("/") + 1)); 
    mediaPlayer.start(); 
    timeElapsed = mediaPlayer.getCurrentPosition(); 
} 

我加入AndroidManifest.xml權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

如何解決這個例外在線路中發生?非常感謝你。

+0

字符串'chooseFiles'是怎麼樣的? –

+0

'chooseFiles:「/ storage/sdcard0/audio/2016-03-24 15.02.58.mp4'是播放音頻的路徑文件。@RaduIonescu – Slug

回答

0

MediaPlayer無法訪問您的文件,可能是因爲它無法找到它,在這種情況下,你應該嘗試添加"file://"到您的路徑

file:///storage/sdcard0/audio/2016-03-24 15.02.58.mp4 

或者如果它是一個權限問題(因爲你最有可能有這個錯誤(1, -2147483648))通過這樣的文件描述符

File file = new File(chooseFiles); 
FileInputStream inputStream = new FileInputStream(file); 
mediaPlayer.setDataSource(inputStream.getFD()); 
inputStream.close(); 
相關問題