KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
This code used to work. Then, maybe I changed something, somewhere (or if I know Android right, an update introduced a bug in the media player). It stopped working on some devices! Especially my Nexus S (2.3.6). The file test.m4a (17 775 201 bytes) was downloaded by the app. To verify its integrity, I copied it to the SD and played it on my PC. No problem! Also binary-compared it with the original file, and it matched 100%. try { _mediaPlayer = new MediaPlayer(); _mediaPlayer.setOnCompletionListener(this); _mediaPlayer.setOnPreparedListener(this); _mediaPlayer.setOnSeekCompleteListener(this); _mediaPlayer.setOnBufferingUpdateListener(this); _mediaPlayer.setOnInfoListener(this); _mediaPlayer.setOnErrorListener(this); // I even tried reading the file from SD card. Same error... File file = new File("/data/data/com.mycompany.myapp/files/MediaCache/Test.m4a"); // file.isFile() == true // file.length() == expected value! FileInputStream is = new FileInputStream(file); _mediaPlayer.setDataSource(is.getFD()); // Throws! // If I use the filename as parameter, it throws later when preparing the media player... _mediaPlayer.prepareAsync(); } catch (Exception e) { // java.io.IOException: setDataSourceFD failed.: status=0x80000000 e.printStackTrace(); } Q: What might cause this IOException for setDataSourceFD when the file is indeed valid? UPDATE: Here's a 98 kB audio file that I cannot play on my Nexus S (2.3.6): http://www.2shared.com/audio/wUKoRiQk/test.html A friend of mine runs some ZTE device (2.2) and it seems to work. I don't get it!
Tags (comma-separated)
Save Edits
Cancel