Próbuję zrozumieć, dlaczego nie mogę słuchać dźwięku wideo z YouTube'a na moim Galaxy S 2, przechodząc do innej aplikacji, na przykład czytając artykuł w Wikipedii w przeglądarce.
czy istnieją jakieś ograniczenia architektoniczne, które to uniemożliwiają w Piernikowym (mam nadzieję, że zostaną usunięte w ICS), czy to tylko sposób, w jaki Google stworzył aplikację YouTube?
Edycja : wypróbowałem dzisiaj aplikację YouTube w ICS 4.0.3 i zachowuje się tak samo jak w Gingerbread: (((
4.0-ice-cream-sandwich
youtube
multitasking
Davide Piras
źródło
źródło
Odpowiedzi:
Renderowanie wideo, które musiałoby się zdarzyć, nawet jeśli aplikacja nie jest „aktywna”, ale nadal gra, będzie zużywać znacznie więcej baterii niż „normalne użytkowanie”. Więc jeśli nie „oglądasz” filmu, zatrzymuje się on, aby nie marnować cennej energii baterii.
źródło
Nie jest to ograniczenie Androida, ale „funkcja” aplikacji Youtube do oszczędzania zasobów.
Jeśli chcesz używać Youtube jako odtwarzacza muzyki, myślę, że powinieneś być w stanie znaleźć aplikację, która pozwoli ci zrobić to dokładnie na rynku.
TubeMate pozwala słuchać tylko dźwięku z pliku Youtube (musisz go jednak pobrać wcześniej), i to powinno działać w tle.
źródło
Jeśli potrzebujesz aplikacji na Androida, która umożliwiałaby elastyczne zarządzanie protokołami strumieniowymi Youtube w sposób, który wspierałby wybór tylko części audio strumienia multimediów podczas odrzucania ścieżki wideo, miej oko na VLC dla Androida . Nadal jest „w fazie rozwoju”, ale prawdopodobnie dotyczyłby funkcji „tylko dźwięk”.
Z bardziej technicznego punktu widzenia pomaga rozbić ten problem na dostępne protokoły sieciowe Youtube do przesyłania strumieniowego multimediów RTSP. Specyfikacje RTSP pozwalają klientowi na wysłanie żądania za pomocą polecenia DESCRIBE, na które serwer odpowiada segmentem danych SDP (patrz szczegóły poniżej). Serwery Youtube mogą odpowiadać na różne protokoły, wysyłając bazowe strumienie, które z kolei używają różnych kodowań - jednego dla audio, jednego dla wideo - do przesyłania bitów multimediów przez sieć do klienta. W sieciach komórkowych funkcja, która trafia na youtube w celu odbierania zarówno ścieżek audio, jak i wideo przed odrzuceniem wideo podczas odtwarzania samego dźwięku, nie jest dobrą praktyką ze względu na duże wymagania sieciowe dla nieużywanego strumienia wideo. Można obejść nieefektywność sieci dzięki dodatkowym szczegółowym analizom technicznym.
Standardy RTSP i SDP przestrzegane przez Youtube pozwoliłyby klientowi przesyłającemu strumieniowo (urządzeniu z Androidem) żądać TYLKO dźwięku podczas kroków uzgadniania klient / serwer i kroków negocjacyjnych wokół konfiguracji połączenia sieciowego, która przeprowadzi strumieniowanie multimediów. W takim przypadku nie zostanie przesłane żadne wideo, a odtwarzacz Android zostanie skonfigurowany w strumieniu tylko audio. Poniżej podano niektóre szczegóły polecenia CLI i niektóre szczegóły protokołu w tym scenariuszu „Tylko dźwięk z YouTube”.
Ścieżka audio w formacie YouTube tylko dla określonego wideo jest dostępna pod następującym identyfikatorem URI RTSP:
Z identyfikatora URI RTSP dla całego wideo (ścieżka audio plus ścieżka wideo) poniższe wyrażenie CLI korzysta z 2 klientów mediów openRTSP i mPlayer przechodzących na Youtube, gdzie następnie GETS / PLAYS tylko ścieżkę audio Youtube, żądając tylko kanału = 1 .
To wyrażenie CLI jest dalej opisane w linku na dole.
„Kanały” na YouTube opisują dostępne formaty strumieniowe dla dowolnego filmu na Youtube, w tym wspomniane powyżej URI RTSP. Aby uzyskać wyjaśnienie techniczne formatów przesyłania strumieniowego w YouTube , zobacz pozycję „format” 1,5,6 w długiej tabeli.
Następujące żądanie pobiera kanał z Youtube, który zawiera różnorodnie sformatowane identyfikatory URI RTSP dostępne dla tego konkretnego filmu:
Krwawe szczegóły połączonej SESJI RTSP, w której wymagany jest pełny opis SDP dla konkretnego filmu na youtube, tak aby można było strumieniowo / odtwarzać tylko ścieżkę audio tutaj .
Klucz do linii numerowanych w powyższym linku:
źródło