é a única tarefa do Android ou multitarefa e multithreading?

18

Estou tentando entender por que não consigo continuar ouvindo o áudio de um vídeo do YouTube no meu Galaxy S 2 enquanto passo para outro aplicativo, por exemplo, lendo um artigo da wikipedia no navegador.

existe alguma limitação arquitetônica que impeça isso no Gingerbread (com sorte será removido no ICS) ou é apenas a maneira como o Google fez o aplicativo do YouTube?

Edit : testei o aplicativo do YouTube no ICS 4.0.3 hoje e se comporta da mesma forma que no Gingerbread: ((((

Davide Piras
fonte
8
Presumo que seja apenas o aplicativo do YouTube. O Google Music (e quase todos os outros aplicativos de música que tentei) continuará sendo reproduzido se os aplicativos forem alterados ou mesmo se a tela estiver desligada (o YouTube para se a tela também estiver desativada).
Dylan Yaga

Respostas:

17

A renderização de vídeo, que teria que acontecer mesmo que o aplicativo não estivesse "ativo", mas ainda estivesse sendo reproduzido, vai usar muito mais bateria do que o "uso normal". Portanto, se você não estiver "assistindo" ao vídeo, ele será interrompido para não desperdiçar uma preciosa energia da bateria.

Ryan Conrad
fonte
Sim, mas para usar o YouTube como rádio, ele pode desativar a renderização do vídeo e reproduzir apenas o áudio! :)
Davide Piras
6
Você poderia - mas não como o aplicativo do YouTube é projetado simplesmente;)
lxgr
19

Não é uma limitação do Android, mas um "recurso" do aplicativo do Youtube para economizar recursos.

Se você deseja usar o YouTube como um reprodutor de música, acho que você deve encontrar um aplicativo que permita fazer exatamente isso no mercado.

O TubeMate permite ouvir apenas o áudio de um arquivo do Youtube (você precisa baixá-lo com antecedência), e isso deve funcionar em segundo plano.

lxgr
fonte
3

Se você deseja um aplicativo para Android que permita o gerenciamento flexível dos protocolos de streaming do YouTube de uma maneira que ofereça suporte à seleção de apenas a parte de áudio do fluxo de mídia enquanto descarta a faixa de vídeo, fique de olho no VLC para Android . Ele ainda está "em desenvolvimento", mas provavelmente abordaria o recurso "apenas áudio".

De uma perspectiva mais técnica, ajuda a dividir o problema em protocolos de rede do YouTube disponíveis para streaming de mídia RTSP. As especificações RTSP permitem que um cliente faça uma solicitação usando o comando DESCRIBE ao qual o servidor responde com um segmento de dados SDP (veja detalhes abaixo). Os servidores do YouTube podem responder em uma variedade de protocolos, enviando fluxos subjacentes que, por sua vez, usam uma variedade de codificações - uma para áudio e outra para vídeo - para transferir os bits de mídia pela rede para o cliente. Nas redes móveis, um recurso que vai ao youtube para receber faixas de áudio e vídeo antes de descartar o vídeo enquanto reproduz apenas o áudio não é uma boa prática devido ao grande requisito de rede para o fluxo de vídeo não utilizado. Você pode contornar a ineficiência da rede com algumas pesquisas técnicas adicionais.

Os padrões RTSP e SDP observados pelo Youtube permitem que um cliente de streaming (dispositivo Android) solicite APENAS o áudio durante as etapas de handshake do cliente / servidor e as etapas de negociação em torno da configuração da conexão de rede que fará o streaming de mídia. Nesse caso, nenhum vídeo seria enviado e o player Android seria configurado em um fluxo apenas de áudio. A seguir, alguns detalhes de comando da CLI e alguns detalhes de protocolo neste cenário 'somente áudio do youtube'.

Uma faixa somente de áudio do formato 1 do youtube para um vídeo específico está disponível no seguinte URI RTSP:

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

No URI do RTSP para o vídeo inteiro (faixa de áudio mais faixa de vídeo), a seguinte expressão CLI utiliza 2 clientes de mídia openRTSP e mPlayer indo para o Youtube, onde GETS / PLAYS apenas a faixa de áudio do YouTube solicitando apenas o 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

Essa expressão da CLI é descrita em mais detalhes em um link na parte inferior.

Os 'feeds' do YouTube descrevem os formatos de fluxo disponíveis para qualquer vídeo do YouTube, incluindo os URIs RTSP mencionados acima. Para uma explicação técnica dos formatos de streaming do YouTube , consulte a entrada 'formato' 1,5,6 na tabela longa.

A solicitação a seguir obtém um feed do YouTube que inclui os URIs de RTSP de vários formatos disponíveis para esse vídeo específico:

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

Os detalhes sangrentos de uma SESSÃO RTSP conectada na qual a descrição completa do SDP é solicitada para um determinado vídeo do youtube, para que apenas a trilha de áudio possa ser transmitida / reproduzida, estão aqui .

Chave para linhas numeradas no link acima:

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
rowntreerob
fonte