Android 단일 작업 또는 멀티 태스킹 및 멀티 스레딩입니까?


18

브라우저에서 Wikipedia 기사를 읽는 등의 다른 응용 프로그램으로 이동하면서 Galaxy S 2에서 YouTube 비디오의 오디오를 계속들을 수없는 이유를 이해하려고합니다.

진저 브레드에서이를 방지하는 아키텍처상의 제한이 있습니까 (ICS에서는 제거 될 것임) 또는 Google이 YouTube 애플리케이션을 만든 방식 일 뿐입니 까?

편집 : 오늘 ICS 4.0.3에서 YouTube 응용 프로그램을 사용해 보았고 진저 브레드와 동일하게 작동합니다.


8
YouTube 애플리케이션 일 뿐이라고 생각합니다. 앱이 전환되거나 화면이 꺼져 있어도 Google 뮤직 (및 시도한 거의 모든 음악 앱)은 계속 재생됩니다 (화면이 꺼져 있으면 YouTube가 중지됨).
Dylan Yaga

답변:


17

응용 프로그램이 "활성"이 아니고 여전히 재생중인 경우에도 발생해야하는 비디오 렌더링은 "정상 사용"보다 배터리를 더 많이 사용하게됩니다. 따라서 비디오를 "감시"하지 않으면 소중한 배터리 전원을 낭비하지 않기 위해 비디오가 중지됩니다.


예, 그러나 YouTube를 라디오로 사용하려면 비디오 렌더링을 비활성화하고 오디오 만 재생할 수 있습니다! :)
Davide Piras

6
당신은 할 수 -하지만 간단하지 YouTube 앱이 설계 방법)
lxgr

19

그것은 안드로이드의 제한이 아니라 자원을 절약하기위한 Youtube 앱의 "기능"입니다.

Youtube를 뮤직 플레이어로 사용하고 싶다면 시장에서 정확히 그렇게 할 수있는 응용 프로그램을 찾을 수 있어야한다고 생각합니다.

TubeMate를 사용하면 Youtube 파일의 오디오 만들을 수 있으며 (사전 다운로드해야 함) 백그라운드에서 작동합니다.


3

비디오 트랙을 버리는 동안 미디어 스트림의 오디오 부분 만 선택할 수있는 방식으로 Youtube 스트리밍 프로토콜을 유연하게 관리 할 수있는 Android 앱을 원한다면 android 용 VLC를 주시하십시오 . 여전히 '개발 중'이지만 아마도 '오디오 전용'기능을 다룰 것입니다.

보다 기술적 인 관점에서이 문제를 미디어 스트리밍에 사용 가능한 Youtube 네트워크 프로토콜로 분류 할 수 있습니다 RTSP. RTSP 스펙을 사용하면 클라이언트가 서버가 SDP 데이터 세그먼트로 응답하는 DESCRIBE 명령을 사용하여 요청을 할 수 있습니다 (아래 세부 사항 참조). Youtube 서버는 다양한 프로토콜로 응답 할 수 있으며, 기본 스트림을 전송하여 다양한 인코딩 (오디오 용, 비디오 용)을 사용하여 네트워크를 통해 미디어 비트를 클라이언트로 전송합니다. 모바일 네트워크에서 오디오 만 재생하는 동안 비디오를 삭제하기 전에 오디오 및 비디오 트랙을 모두 수신하기 위해 YouTube로가는 기능은 사용하지 않는 비디오 스트림에 대한 네트워크 요구 사항이 많기 때문에 좋은 방법이 아닙니다. 추가 기술 드릴 다운을 통해 네트워크 비 효율성을 극복 할 수 있습니다.

Youtube에서 관찰 한 RTSP 및 SDP 표준을 통해 스트리밍 클라이언트 (안드로이드 장치)는 클라이언트 / 서버 핸드 셰이크 단계 및 미디어 스트리밍을 수행 할 네트워크 연결 설정 주위의 협상 단계에서 오디오 만 요청할 수 있습니다. 이 경우 비디오가 전송되지 않으며 Android 플레이어는 오디오 전용 스트림에서 구성됩니다. 이 'youtube audio only'시나리오에 대한 일부 CLI 명령 세부 사항 및 일부 프로토콜 세부 사항은 다음과 같습니다.

특정 비디오에 대한 YouTube, 형식 1 오디오 전용 트랙은 다음 RTSP URI에서 사용할 수 있습니다.

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

전체 비디오 (오디오 트랙 및 비디오 트랙)에 대한 RTSP URI에서 다음 CLI 표현식은 2 개의 미디어 클라이언트 openRTSPmPlayer 를 사용하여 Youtube로 이동 한 다음 channel = 1 만 요청하여 Youtube 오디오 트랙 만 GETS / PLAYS합니다 .

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

이 CLI 표현식은 맨 아래 링크에 자세히 설명되어 있습니다.

Youtube 'feeds'는 위에서 언급 한 RTSP URI를 포함하여 모든 Youtube 비디오에 사용 가능한 스트림 형식을 설명합니다. Youtube 스트리밍 형식에 대한 기술 설명은 긴 표에서 '형식' 1,5,6 항목을 참조하십시오 .

다음 요청은 특정 동영상에 사용할 수있는 다양한 형식의 RTSP URI가 포함 된 피드를 Youtube에서 가져옵니다.

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

오디오 트랙 만 스트리밍 / 재생할 수 있도록 특정 YouTube 비디오에 대해 전체 SDP 설명을 요청하는 연결 RTSP 세션의 세부 정보는 여기에 있습니다 .

위 링크에서 번호가 매겨진 줄의 키 :

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.