Android 2.2 MediaPlayer is working fine with one SHOUTcast URL but not with the other one
tôi cần phải chơi tập tin âm thanh từ các URL bên ngoài (dòng Shoutcast). Hiện tại, các tệp âm thanh được tải xuống từng bước & được phát ngay sau khi chúng tôi nhận đủ âm thanh trong bộ nhớ tạm thời cục bộ của điện thoại. tôi đang sử dụng số StreamingMediaPlayer class.
Kiểm tra đoạn mã này:
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;
}
tình trạng hiện tại:
1- Nó hoạt động tốt từ Android 1,6-2,1 nhưng không có trong các phiên bản cao hơn như Android 2.2.
2- "mPlayer.setDataSource (fis.getFD())" là dòng đưa ra lỗi.
3- lỗi là "Không thể để tạo media player"
Giải pháp khác thử:
tôi đã cố gắng bên dưới giải pháp thay thế nhưng không làm việc cho đến nay.
Android 2.2 MediaPlayer is working fine with one SHOUTcast URL but not with the other one
gì tôi đang tìm kiếm?
Mục tiêu của tôi là có một mã an toàn có thể hoạt động trên Android 2.1 & cao hơn.
Vấn đề này cũng sẽ được thảo luận ở đây:
1- Inconsistent 2.2 Media Player Behavior
2- android code for streaming shoutcast stream breaks in 2.2
3- Vấn đề này cũng được thảo luận trong nhiều câu hỏi trên trang web này, nhưng tôi thấy câu trả lời không đâu.
4- markmail.org
LogCat dấu vết:
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)
Có lẽ liên kết này sẽ trả lời câu hỏi của bạn và nếu không, vui lòng gửi một dấu vết cho lỗi bạn nhận được: http://stackoverflow.com/questions/3834548/android-code-for-streaming-shoutcast- stream-breaks-in-2-2 – leanne