Zgodnie z informacjami o wydaniu, StageFright zastępuje framework OpenCore w wydaniu GingerBread. Wydaje się, że było wiele dyskusji, które mówią: strumieniowanie HTTP na żywo HTTP jest obsługiwane domyślnie od Androida 2.3. Nawet Wikipedia wspomina o tym.
Jednak kiedy próbuję uruchomić test stream dostarczonego przez Apple przy użyciu MediaPlayerDemo_Video.java
pakiecie z Demos API dostaję następującymi wyjątkami:MediaPlayer Framework on GingerBread i obsługa HTTP Live Streaming na żywo
setDataSource('http://devimages.apple.com/iphone/samples/bipbop/gear1/
prog_index.m3u8')
connect to devimages.apple.com:80/iphone/samples/bipbop/gear1/
prog_index.m3u8 @0
INFO/NuCachedSource2(34): ERROR_END_OF_STREAM
error (1, -2147483648)
ERROR/MediaPlayerDemo(667): error: Prepare failed.: status=0x1
java.io.IOException: Prepare failed.: status=0x1
at android.media.MediaPlayer.prepare(Native Method)
at
com.video.stream.MediaPlayerDemo_Video.playVideo(MediaPlayerDemo_Video.java:
125)
at
com.video.stream.MediaPlayerDemo_Video.surfaceCreated(MediaPlayerDemo_Video.java:
181)
...
surfaceChanged called
Displayed com.video.stream/.MediaPlayerDemo_Video: +1s652ms (total
+7s427ms)
GC_EXPLICIT freed 2K, 55% free 2514K/5511K, external 716K/1038K,
paused 183ms
GC_EXPLICIT freed 17K, 52% free 2782K/5767K, external 716K/1038K,
paused 87ms
GC_EXPLICIT freed 68K, 50% free 2972K/5895K, external 2544K/3109K,
paused 104ms
request time failed: java.net.SocketException: Address family not
supported by protocol
--- odpowiedni kod (MediaPlayerDemo_Video.java):
path = "http://devimages.apple.com/iphone/samples/bipbop/gear1/
prog_index.m3u8";
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(path);
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepare();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
Pytania:
1. Czy GingerBread rzeczywiście obsługuje protokół HTTP Live Streaming firmy Apple?
2. Co poszło nie tak powyżej?
Proszę o pomoc.
Dodałem {{citation needed}} na stronie Wiki i wygląda na to, że autor zareagował zmieniając sekcję. – Samuh
Zestaw SDK podglądu dla bloku pustakowego jest dostępny do pobrania i jest reklamowany w celu obsługi m3U8. jednak nie byłem w stanie odtworzyć na nim strumienia testowego Apple. – Samuh
Złożyłem zgłoszenie błędu: http://code.google.com/p/android/issues/detail?id=14646&q=stars%3D2&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars – Samuh