¿Es Android una sola tarea o multitarea y multihilo?


18

Estoy tratando de entender por qué no puedo seguir escuchando el audio de un video de YouTube en mi Galaxy S 2 mientras me muevo a otra aplicación, por ejemplo, leyendo un artículo de Wikipedia en el navegador.

¿Existe alguna limitación arquitectónica que impida esto en Gingerbread (ojalá se elimine en ICS) o es solo la forma en que Google creó la aplicación de YouTube?

Editar : probé la aplicación de YouTube en ICS 4.0.3 hoy y se comporta igual que en Gingerbread: ((((


8
Supongo que es solo la aplicación de YouTube. Google Music (y casi todas las demás aplicaciones de música que he probado) continuará reproduciéndose si se cambian las aplicaciones, o incluso si la pantalla está apagada (YouTube se detiene si la pantalla también está apagada).
Dylan Yaga

Respuestas:


17

La reproducción de video, que tendría que suceder incluso si la aplicación no está "activa" pero sigue reproduciéndose, va a usar mucha más batería que el "uso normal". Entonces, si no está "viendo" el video, se detiene para no desperdiciar la preciada batería.


sí, pero para usar YouTube como radio, ¡podría deshabilitar la representación de video y solo reproducir el audio! :)
Davide Piras

66
Podrías, pero no es así como está diseñada la aplicación de Youtube;)
lxgr

19

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

Si desea utilizar YouTube como reproductor de música, creo que debería poder encontrar una aplicación que le permita hacer exactamente eso en el mercado.

TubeMate le permite escuchar solo el audio de un archivo de Youtube (sin embargo, debe descargarlo por adelantado), y eso debería funcionar en segundo plano.


3

Si desea una aplicación de Android que permita una administración flexible de los protocolos de transmisión de Youtube de una manera que admita la selección de solo la parte de audio de la transmisión de medios mientras descarta la pista de video, esté atento a VLC para Android . Todavía está 'en desarrollo' pero probablemente abordaría la función 'solo audio'.

Desde una perspectiva más técnica, ayuda a dividir el problema en protocolos de red de Youtube disponibles para transmisión de medios RTSP. Las especificaciones RTSP permiten que un cliente realice una solicitud utilizando el comando DESCRIBE al que el servidor responde con un segmento de datos SDP (consulte los detalles a continuación). Los servidores de Youtube pueden responder en una variedad de protocolos, enviando transmisiones subyacentes que a su vez usan una variedad de codificaciones, una para audio y otra para video, para transferir los bits de medios a través de la red al cliente. A través de las redes móviles, una función que va a YouTube para recibir pistas de audio y video antes de descartar el video mientras se reproduce solo audio no es una buena práctica debido a la gran necesidad de red para la transmisión de video no utilizada. Puede sortear la ineficiencia de la red con más detalles técnicos.

Los estándares RTSP y SDP observados por Youtube permitirían que un cliente de transmisión (dispositivo Android) solicite SOLAMENTE el audio durante los pasos de protocolo de enlace Cliente / Servidor y los pasos de negociación en torno a la configuración de la conexión de red que realizará la transmisión de medios. En este caso, no se enviaría ningún video y el reproductor de Android se configuraría en una transmisión de solo audio. A continuación, se muestran algunos detalles del comando de la CLI y algunos detalles del protocolo en este escenario de "solo audio de youtube".

Una pista de youtube, formato 1 solo audio para un video en particular está disponible en el siguiente URI RTSP:

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

Desde el RTSP URI para todo el video (pista de audio más pista de video), la siguiente expresión de CLI utiliza 2 clientes de medios openRTSP y mPlayer que van a Youtube donde luego OBTENEN / REPRODUCEN solo la pista de audio de Youtube solicitando solo 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 CLI se describe más detalladamente en un enlace en la parte inferior.

Los 'feeds' de Youtube describen los formatos de transmisión disponibles para cualquier video de Youtube, incluidos los URI de RTSP mencionados anteriormente. Para una explicación técnica de los formatos de transmisión de Youtube , vea la entrada para 'formato' 1,5,6 en la tabla larga.

La siguiente solicitud recibe un feed de Youtube que incluye los URI de RTSP con varios formatos que están disponibles para ese video en particular:

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

Los detalles sangrientos de una SESIÓN RTSP conectada en la que se solicita la descripción completa del SDP para un video de YouTube en particular para que solo se pueda transmitir / reproducir la pista de audio aquí .

Clave para las líneas numeradas en el enlace de arriba:

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.