MediaPlayer-Cadre sur pain d'épice et Apple HTTP Streaming Live Support
Selon les notes de version, StageFright remplace le OpenCore-cadre dans le pain d'épice de la libération. Il semble qu'il y a eu de nombreuses discussions qui dit: Apple HTTP Live streaming est pris en charge par défaut depuis Android 2.3. Même les Wikipédia allusion.
Cependant, lorsque j'essaie d'exécuter le test de flux fourni par Apple à l'aide de la MediaPlayerDemo_Video.java
livré avec l'API de Démos-je obtenir les
exceptions suivantes:
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
---code(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);
Questions:
1. N'pain d'épice construire vraiment un support pour Apple HTTP Live Streaming
protocole?
2. Ce qui n'allait pas au-dessus?
S'il vous plaît aider.
J'avais ajouté un {{citation nécessaire}} sur la page du Wiki et il semble que l'auteur a répondu par la modification de la section.
La Preview du SDK pour le Nid d'abeille est disponible en téléchargement et est annoncé à l'appui de m3U8. cependant, je n'étais pas en mesure de jouer Apple test de flux.
J'ai déposé un bug pour cela: code.google.com/p/android/issues/...
Le réel kit de développement a été libéré et j'ai mis à jour ce thread avec mes conclusions.
La Preview du SDK pour le Nid d'abeille est disponible en téléchargement et est annoncé à l'appui de m3U8. cependant, je n'étais pas en mesure de jouer Apple test de flux.
J'ai déposé un bug pour cela: code.google.com/p/android/issues/...
Le réel kit de développement a été libéré et j'ai mis à jour ce thread avec mes conclusions.
OriginalL'auteur Samuh | 2011-01-19
Vous devez vous connecter pour publier un commentaire.
Bon, j'ai trouvé quelques renseignements et je vais mettre à jour ce fil par répondre à ma propre question. Si quelqu'un a des suggestions ou d'autres considérations à apporter à la table s'il vous plaît ajouter.
Stagefright
cadre qui vient avecHoneycomb
créer des soutiensHTTP Live Streaming
. La documentation lit la plupart des parties du projet de spécification sans mentionner explicitement les parties.La vidéo et l'audio doit être conforme à formats de support pris en charge par Android.
J'ai été capable de lire le contenu protégé par les ruisseaux employant
AES-128
de chiffrement. Cependant, les performances de l'émulateur(malheureusement, je n'ai pas l'appareil) n'était pas bon. L'Audio et la Vidéo ont été terriblement de la synchronisation. Streaming les applications doivent être testés sur des dispositifs réels.Vous ne pouvez pas diffuser vos données via le protocole https. Aussi, afin de détecter que le flux est conforme à HTTPLive standard que vous aurez à remplacer
"http://"
partie de l'URL avec"httplive://"
OriginalL'auteur Samuh
Pain d'épice ne prend en charge la lecture de certains les flux HLS à l'aide de la httplive://préfixe, mais les codecs pris en charge sont très limitées et il est très facile de construire un bon flux qui bloque le media framework et ne parvient pas à jouer.
Mes expériences ont montré que cette panne se produit normalement pendant le chargement ou le décodage du premier segment, de même pour le contenu chiffré, mais que la clé n'obtient pas demandé ce qui suggère que le cadre est ignorant les principales lignes.
Bien sûr, pour ceux qui ont besoin de l'appui de la très plus récents appareils sur le marché, le soutien pour HLS dans ICS apparaît raisonnable (bien qu'encore imparfaite) toutefois, ceux d'entre nous qui ont besoin d'une sorte de rétro-compatibilité sont à gauche décidément dehors dans le froid, et il semble que la seule option pour la lecture en continu (par opposition à un téléchargement progressif) est RTSP, qui lui-même est mal implimented dans Android.
OriginalL'auteur Haqa