Pregunta

De acuerdo con las notas de la versión, Stagefright reemplaza el marco OpenCore en el comunicado de pan de jengibre. Parece que ha habido numerosos debates que dice: HTTP Live streaming de Apple se apoya en default desde Android 2.3. Incluso el Wikipedia menciones esto.
Sin embargo, cuando trato de ejecutar la secuencia de prueba href="http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8" proporcionado por Apple utilizando el MediaPlayerDemo_Video.java incluido con API Demos consigo el excepciones siguientes:

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 

--- códigos correspondientes (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);

Las preguntas:
1. ¿El pan de jengibre acumulación realmente soporta el protocolo HTTP Live Streaming de Apple protocolo?
2. ¿Qué salió mal arriba?

Por favor, ayuda.

¿Fue útil?

Solución

Muy bien, he encontrado algunos datos y voy a actualizar este hilo por responder a mi propia pregunta. Si alguien tiene sugerencias u otras consideraciones para llevar a la mesa por favor añada.

  1. Stagefrightframework que viene con soportes Honeycomb construcción HTTP Live Streaming. La documentación lee la mayor parte del borrador de la especificación sin mencionar explícitamente qué partes.

  2. El vídeo y el audio debe ser conforme a formatos de medios soportados por Android .

  3. Yo era capaz de reproducir flujos de contenido protegido que emplean cifrado AES-128. Sin embargo, el rendimiento del emulador (por desgracia, no tenía el dispositivo) no era bueno. Audio y Vídeo eran terriblemente fuera de sincronía. Las aplicaciones de transmisión tienen que ser probados en dispositivos reales.

  4. Usted no puede transmitir sus datos a través de HTTPS. Además, con el fin de detectar que los ajusta a la corriente HTTPLive estándar que tendrán que sustituir parte "http://" de la dirección URL con "httplive://"

Otros consejos

pan de jengibre ayuda que juega hace algunos HLS arroyos utilizando el httplive:. // prefijo de sistema, pero los códecs soportados son muy limitados y es muy fácil de construir una corriente perfectamente válido que se estrella el marco de los medios y no para jugar

Mis experiencias han demostrado que normalmente se produce este accidente durante la carga o la decodificación del primer segmento, incluso para el contenido cifrado, pero que la clave no consigue pidió que sugiere que el marco está ignorando las líneas clave.

Por supuesto, para aquellos que sólo necesitan para soportar los dispositivos muy nuevos en el mercado, con el apoyo de HLS en el ICS parece razonable (aunque todavía imperfecta), sin embargo los de nosotros que necesitan algún tipo de compatibilidad hacia atrás quedan decididamente a cabo en el frío, y parece que la única opción para el streaming (en contraposición a la descarga progresiva) es RTSP, que a su vez está mal implimented en Android.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top