簡體   English   中英

MediaPlayer無法在Android中播放音頻

[英]MediaPlayer can't play audio in Android

今天,我提出了在Android上播放音樂的應用程序。

使用MediaPlayer播放音頻文件時,我失敗了; 它不能播放任何文件音頻。 該異常引發如下日志:

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

W / System.err:java.io.IOException:准備失敗。:status = 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" />

如何解決這個問題? 非常感謝你。

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM