ist Android Single Task oder Multitasking und Multithreading?

18

Ich versuche zu verstehen, warum ich den Ton eines YouTube-Videos auf meinem Galaxy S 2 nicht mehr hören kann, während ich zu einer anderen Anwendung wechsle, um beispielsweise einen Wikipedia-Artikel im Browser zu lesen.

Gibt es eine architektonische Einschränkung, die dies in Gingerbread verhindert (wird hoffentlich in ICS entfernt), oder ist es nur die Art und Weise, wie Google die YouTube-Anwendung erstellt hat?

Bearbeiten : YouTube-Anwendung in ICS 4.0.3 heute ausprobiert und verhält sich wie in Gingerbread: (((

Davide Piras
quelle
8
Ich nehme an, es ist nur die YouTube-Anwendung. Google Music (und fast jede andere Musik-App, die ich ausprobiert habe) wird weiterhin abgespielt, wenn Apps umgeschaltet werden oder auch wenn der Bildschirm ausgeschaltet ist (YouTube stoppt, wenn der Bildschirm ebenfalls ausgeschaltet ist).
Dylan Yaga

Antworten:

17

Video-Rendering, das auch dann stattfinden müsste, wenn die Anwendung nicht "aktiv" ist, aber noch läuft, wird viel mehr Batterie verbrauchen als "normale Nutzung". Wenn Sie sich das Video also nicht "ansehen", wird es angehalten, um keine wertvolle Akkuleistung zu verschwenden.

Ryan Conrad
quelle
Ja, aber um YouTube als Radio zu verwenden, könnte es das Video-Rendering deaktivieren und nur das Audio abspielen! :)
Davide Piras
6
Du
könntest
19

Es ist keine Einschränkung von Android, sondern ein "Feature" der Youtube-App, um Ressourcen zu schonen.

Wenn Sie Youtube als Musikplayer verwenden möchten, sollten Sie meines Erachtens eine Anwendung finden, mit der Sie genau das auf dem Markt tun können.

Mit TubeMate kannst du nur das Audio einer Youtube-Datei anhören (du musst es allerdings vorher herunterladen), und das sollte im Hintergrund funktionieren.

lxgr
quelle
3

Wenn Sie eine Android-App möchten, die eine flexible Verwaltung der Youtube-Streaming-Protokolle auf eine Weise ermöglicht, die die Auswahl nur des Audio-Teils des Medien-Streams beim Verwerfen des Videotracks unterstützt, sollten Sie VLC für Android im Auge behalten . Es befindet sich noch in der Entwicklung, würde aber wahrscheinlich die Funktion "Nur Audio" ansprechen.

Aus technischer Sicht hilft es, das Problem in verfügbare Youtube-Netzwerkprotokolle für Media Streaming RTSP zu unterteilen. Mit RTSP-Spezifikationen kann ein Client mithilfe des Befehls DESCRIBE, auf den der Server mit einem SDP-Datensegment antwortet, eine Anforderung stellen (siehe Details unten). Youtube-Server können in einer Vielzahl von Protokollen antworten und zugrunde liegende Streams senden, die wiederum eine Vielzahl von Codierungen verwenden - eine für Audio und eine für Video -, um die Medienbits über das Netzwerk an den Client zu übertragen. Über die Mobilfunknetze ist eine Funktion, die zu YouTube geht, um sowohl Audio- als auch Videotracks zu empfangen, bevor das Video verworfen wird, während nur Audio wiedergegeben wird, keine gute Praxis, da für den nicht verwendeten Videostream eine hohe Netzwerkanforderung besteht. Mit weiteren technischen Details können Sie die Ineffizienz des Netzwerks umgehen.

RTSP- und SDP-Standards, die von Youtube eingehalten werden, ermöglichen einem Streaming-Client (Android-Gerät), NUR das Audio während der Client / Server-Handshake-Schritte und Verhandlungsschritte rund um den Netzwerkverbindungsaufbau anzufordern, die das Media-Streaming durchführen. In diesem Fall würde kein Video gesendet und der Android-Player auf einen Nur-Audio-Stream konfiguriert. Es folgen einige CLI-Befehlsdetails und einige Protokolldetails zu diesem "Nur Youtube-Audio" -Szenario.

Ein YouTube-Nur-Audio-Track im Format 1 für ein bestimmtes Video ist unter der folgenden RTSP-URI verfügbar:

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

Aus der RTSP-URI für das gesamte Video (Audiospur plus Videospur) werden im folgenden CLI-Ausdruck zwei Medienclients verwendet: openRTSP und mPlayer , die zu Youtube gehen und dann nur die Youtube-Audiospur abrufen / wiedergeben, indem nur Kanal = 1 angefordert wird .

./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

Dieser CLI-Ausdruck wird weiter unten in einem Link beschrieben.

Youtube-Feeds beschreiben die verfügbaren Stream-Formate für alle Youtube-Videos, einschließlich der oben genannten RTSP-URIs. Eine technische Erklärung der Youtube-Streaming- Formate finden Sie im Eintrag für "Format" 1,5,6 in der langen Tabelle.

Die folgende Anfrage erhält einen Feed von Youtube, der die unterschiedlich formatierten RTSP-URIs enthält, die für dieses bestimmte Video verfügbar sind:

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

Die wichtigsten Details einer verbundenen RTSP-SESSION, in der die vollständige SDP-Beschreibung für ein bestimmtes Youtube-Video angefordert wird, damit nur der Audiotrack gestreamt / abgespielt werden kann, finden Sie hier .

Schlüssel zu den nummerierten Zeilen im obigen Link:

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
quelle