2016-03-24 23 views
0

Bugün, Android'de müzik çalmak için uygulama yapıyorum.MediaPlayer Android'de ses çalamıyor

Bir ses dosyası yürütmek için MediaPlayer kullanırken başarısız oldum; herhangi bir dosya sesini çalamaz. Bu istisna günlüğe atar kedi gibi:

E/MediaPlayer: hatası (1, -2147483648)

W/System.err: java.io.IOException: hazırlayın başarısız .: durumu = 0x1

W/System.err: android.media.MediaPlayer.prepare (Ana Yöntemi) en

Bu kod daha ayrıntılı bilgi gösterir;

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

Nasıl bu sorunu gidermek için:

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

ben AndroidManifest.xml izne ekledi: Bu sınıf bu satırı içeren

mediaPlayer.prepare();

: istisna çizgisinde cereyan? Çok teşekkür ederim.

+0

gibi bir dosya tanıtıcı geçmesine var? –

+0

'selectFiles:"/storage/sdcard0/audio/2016-03-24 15.02.58.mp4', ses dosyasını çalınacak dosya yoludur. "@RaduIonescu – Slug

cevap

0

MediaPlayer bu durumda size yolu "file://" eklemek için çalışmalısınız ya da bulamıyorum, çünkü dosyaya erişemiyor

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

Yoksa ilgini beri büyük olasılıkla bir izin sorunu (eğer Bu hata (1, -2147483648)) Nasıl chooseFiles` gibi dize `görünüyor bunu bu

File file = new File(chooseFiles); 
FileInputStream inputStream = new FileInputStream(file); 
mediaPlayer.setDataSource(inputStream.getFD()); 
inputStream.close(); 
İlgili konular