2016-03-24 15 views
0

今日、Androidで音楽を再生するアプリケーションを作成します。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(); 
関連する問題