EDIT:
Android 2.2 MediaPlayer отлично работает с одним URL-адресом SHOUTcast, но не с другим
Мне нужно воспроизвести аудиофайлы с внешних URL-адресов (поток криков). В настоящее время аудиофайлы загружаются постепенно и воспроизводятся, как только мы получаем достаточно звука в локальном временном хранилище телефона. Я использую класс StreamingMediaPlayer.
Проверьте этот фрагмент кода:
private MediaPlayer createMediaPlayer(File mediaFile)
throws IOException {
MediaPlayer mPlayer = new MediaPlayer();
//example of mediaFile =/data/data/package/cache/playingMedia0.dat
FileInputStream fis = new FileInputStream(mediaFile);
mPlayer.setDataSource(fis.getFD());
mPlayer.prepare();
return mPlayer;
}
Текущее состояние:
1- Он отлично работает с Android 1.6 до 2.1, но не в более высоких версиях, таких как Android 2.2.
2- "mPlayer.setDataSource(fis.getFD())" - это строка, которая выдает ошибку.
3- Ошибка "Невозможно создать медиаплеер"
Другое решение:
Я попробовал под альтернативным решением, но пока ничего не работало.
Android 2.2 MediaPlayer отлично работает с одним URL-адресом SHOUTcast, но не с другим
Что я ищу?
Моя цель - иметь мир кода, который может работать на Android 2.1 и выше.
Эта проблема также обсуждается здесь:
1- Непоследовательность 2.2. Поведение медиаплеера
2- андроидный код для потоковой переадресации переходов в 2.2
3- Эта проблема также обсуждается во множестве вопросов на этом сайте, но я нашел ответ не где.
4- markmail.org
Трассировка LogCat:
Unable to to create media player
Error copying buffered conent.
java.lang.NullPointerException
com.ms.iradio.StreamingMediaPlayer.startMediaPlayer(StreamingMediaPlayer.java:251)
com.ms.iradio.StreamingMediaPlayer.access$2(StreamingMediaPlayer.java:221)
com.ms.iradio.StreamingMediaPlayer$2.run(StreamingMediaPlayer.java:204)
android.os.Handler.handleCallback(Handler.java:587)
android.os.Handler.dispatchMessage(Handler.java:92)
android.os.Looper.loop(Looper.java:123)
android.app.ActivityThread.main(ActivityThread.java:3683)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:507)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
dalvik.system.NativeStart.main(Native Method)