18 votos

¿es Android una sola tarea o multitarea y multithreading?

Intento entender por qué no puedo seguir escuchando el audio de un vídeo de YouTube en mi Galaxy S 2 mientras paso a otra aplicación, por ejemplo, leer un artículo de la wikipedia en el navegador.

¿hay alguna limitación arquitectónica que impida esto en Gingerbread (esperemos que se elimine en ICS) o es sólo la forma en que Google hizo la aplicación de YouTube?

Editar : hoy he probado la aplicación YouTube en ICS 4.0.3 y se comporta igual que en Gingerbread :(((

19voto

Lasar Puntos 2008

No es una limitación de Android, sino una "característica" de la aplicación de Youtube para conservar recursos.

Si quieres usar Youtube como reproductor de música, creo que deberías poder encontrar en el mercado una aplicación que te permita hacer exactamente eso.

TubeMate te permite escuchar sólo el audio de un archivo de Youtube (aunque tienes que descargarlo previamente), y debería funcionar en segundo plano.

17voto

mercutio Puntos 5828

El renderizado de vídeo, que tendría que ocurrir incluso si la aplicación no está "activa" pero sigue reproduciéndose, va a consumir mucha más batería que el "uso normal". Así que si no estás "viendo" el vídeo, se detiene para no gastar la preciosa energía de la batería.

3voto

rowntreerob Puntos 131

Si quieres una aplicación para Android que permita una gestión flexible de los protocolos de streaming de Youtube de forma que permita seleccionar sólo la parte de audio del flujo multimedia descartando la pista de vídeo, échale un ojo a VLC para Android . Todavía está "en desarrollo", pero probablemente se trate de la función "sólo audio".

Desde un punto de vista más técnico, ayuda a desglosar la cuestión en los protocolos de red de Youtube disponibles para la transmisión de medios RTSP . Las especificaciones de RTSP permiten a un cliente hacer una petición utilizando el comando DESCRIBE al que el servidor responde con un segmento de datos SDP (ver detalles más abajo). Los servidores de Youtube pueden responder en una variedad de protocolos, enviando flujos subyacentes que, a su vez, utilizan una variedad de codificaciones -una para el audio y otra para el vídeo- para transferir los bits multimedia a través de la red hasta el cliente. En las redes móviles, una función que se dirija a Youtube para recibir tanto las pistas de audio como las de vídeo antes de descartar el vídeo y reproducir sólo el audio no es una buena práctica debido a la gran necesidad de red para el flujo de vídeo no utilizado. Se puede sortear la ineficiencia de la red con un poco más de investigación técnica.

Los estándares RTSP y SDP observados por Youtube permitirían a un cliente de streaming (dispositivo Android) solicitar SOLO el Audio durante los pasos de handshake Cliente/Servidor y los pasos de negociación en torno a la configuración de la conexión de red que hará el streaming de medios. En este caso, no se enviaría ningún vídeo y el reproductor de Android se configuraría en un flujo de sólo audio. Algunos detalles de los comandos CLI y algunos detalles del protocolo en este escenario de "sólo audio de youtube" siguen.

En la siguiente URI RTSP está disponible una pista de audio de youtube, formato 1, para un vídeo concreto:

rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp

A partir de la URI RTSP para todo el vídeo (pista de audio más pista de vídeo) , la siguiente expresión CLI hace uso de 2 clientes multimedia openRTSP y mPlayer yendo a Youtube donde luego OBTIENE/PRODUCE sólo la pista de audio de Youtube solicitando sólo canal=1 .

./openRTSP -a rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp | ./mplayer -cache 8092 - -rawaudio channels=1:rate=8000:samplesize=2:format=0x73616D72

Esta expresión de la CLI se describe con más detalle en un enlace en la parte inferior.

Los "feeds" de Youtube describen los formatos de flujo disponibles para cualquier vídeo de Youtube, incluidos los URI RTSP mencionados anteriormente. Para una explicación técnica del streaming de Youtube formatos véase la entrada de formato 1,5,6 en la tabla larga.

La siguiente petición obtiene un feed de Youtube que incluye las URIs RTSP con distintos formatos que están disponibles para ese vídeo en particular:

http://gdata.youtube.com/feeds/api/users/rowntreerob/uploads?vq=cpST8yz4w1w&prettyprint='true'

Los detalles escabrosos de una SESIÓN RTSP conectada en la que se solicita la descripción SDP completa de un video de youtube en particular para poder transmitir/reproducir sólo la pista de audio son aquí .

Clave de las líneas numeradas en el enlace anterior:

82 – the RTSP DESCRIBE request
101 – the SDP response
103 – video track’s format
116 – the attributes describing the audio track
line 165 – the audio track setup by the player
184 – the audio-only playback
201 – using a separate CLI expression this is playback of a previous download on just the audio track

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X