Android MediaPlayer可以从web播放音频文件,但不能播放.ape、.flac大尺寸音频?
我使用android mediaplayer从web播放音频文件,它可以播放.mp3音频,但不能播放.ape、.flac、.wma音频 我在不同的android设备(android 6.0+)上试用了我的应用程序,只有一台设备可以播放所有音频格式,我发现.ape、.flac文件非常大。这些文件超过20m,所以我试着测试一个小的.flac音频,所有设备都可以播放它Android MediaPlayer可以从web播放音频文件,但不能播放.ape、.flac大尺寸音频?,android,Android,我使用android mediaplayer从web播放音频文件,它可以播放.mp3音频,但不能播放.ape、.flac、.wma音频 我在不同的android设备(android 6.0+)上试用了我的应用程序,只有一台设备可以播放所有音频格式,我发现.ape、.flac文件非常大。这些文件超过20m,所以我试着测试一个小的.flac音频,所有设备都可以播放它 private void prepareMusic(String uriString) throws IOException
private void prepareMusic(String uriString) throws IOException {
mediaPlayer = new MediaPlayer();
mediaPlayer.reset();
mediaPlayer.setDataSource(this, Uri.parse(uriString));
mediaPlayer.prepare();
//mediaPlayer.prepareAsync();
//mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
//@Override
//public void onPrepared(MediaPlayer mp) {
// Log.i(TAG, "prepared...");
// playMusic();
// }
//});
}
这些格式需要Android中不包含的编解码器。换句话说:应用程序应该支持这种编解码器。这些格式需要Android中不包含的编解码器。换句话说:应用程序应该支持这种编解码器。
private class MusicAsyncTask extends AsyncTask<String, Object, Object> {
@Override
protected Object doInBackground(String... strings) {
try {
String uri = HttpUtil.MUSIC_URL + Util.encodeURL(strings[0]);
Log.i(TAG, uri);
prepareMusic(uri);
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, e.getLocalizedMessage());
}
return null;
}
@Override
protected void onPostExecute(Object o) {
playMusic();
}
}
java.io.IOException: Prepare failed.: status=0x1
at android.media.MediaPlayer._prepare(Native Method)
at android.media.MediaPlayer.prepare(MediaPlayer.java:1313)
at android.os.AsyncTask$2.call(AsyncTask.java:345)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:257)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:784)