我试图了解为什么我不能在继续转到其他应用程序(例如在浏览器上阅读维基百科文章)的同时在Galaxy S 2上继续收听YouTube视频的音频。
是否有任何体系结构上的限制可防止Gingerbread中出现这种情况(希望在ICS中将其删除),或者仅是Google制作YouTube应用程序的方式?
编辑:今天在ICS 4.0.3中试用了YouTube应用程序,其行为与Gingerbread中的行为相同:(((
我试图了解为什么我不能在继续转到其他应用程序(例如在浏览器上阅读维基百科文章)的同时在Galaxy S 2上继续收听YouTube视频的音频。
是否有任何体系结构上的限制可防止Gingerbread中出现这种情况(希望在ICS中将其删除),或者仅是Google制作YouTube应用程序的方式?
编辑:今天在ICS 4.0.3中试用了YouTube应用程序,其行为与Gingerbread中的行为相同:(((
Answers:
即使应用程序不处于“活动”状态但仍在播放,也必须进行视频渲染,这将比“正常使用”消耗更多的电池。因此,如果您不“观看”视频,它会停止播放,以免浪费宝贵的电池电量。
如果您想要一个可以以灵活的方式管理Youtube流协议的android应用,而该应用仅支持选择媒体流的音频部分,而又不丢弃视频轨道,请关注VLC for android。它仍在“开发中”,但可能会解决“仅音频”功能。
从更多的技术角度来看,它有助于将问题分解为可用的YouTube网络协议以用于媒体流RTSP。RTSP规范允许客户端使用DESCRIBE命令发出请求,服务器以SSCR数据段响应该命令(请参见下面的详细信息)。Youtube服务器可以响应各种协议,发送底层流,这些流又使用各种编码(一种用于音频,一种用于视频)在网络上将媒体位传输到客户端。在移动网络上,由于未使用的视频流对网络的需求很高,因此在丢弃视频而仅播放音频的同时去掉youtube以便同时接收音频和视频轨道的功能不是一个好习惯。您可以通过进一步的技术深入来解决网络效率低下的问题。
Youtube遵循的RTSP和SDP标准将允许流媒体客户端(Android设备)仅在客户端/服务器握手步骤和网络连接设置周围的协商步骤期间请求音频,以进行媒体流传输。在这种情况下,将不会发送任何视频,并且将在仅音频流上配置android播放器。有关此“仅YouTube音频”方案的一些CLI命令详细信息和一些协议详细信息如下。
在以下RTSP URI上可以找到特定视频的youtube格式1仅音频轨道:
rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp
从整个视频(音频轨道和视频轨道)的RTSP URI中,以下CLI表达式使用2个媒体客户端openRTSP和mPlayer转到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的“提要”描述了任何Youtube视频的可用流格式,包括上述的RTSP URI。有关Youtube流格式的技术说明,请参见长表中“格式” 1、5、6 的条目。
以下请求从Youtube获得了一个供稿,其中包括可用于该特定视频的各种格式的RTSP URI:
http://gdata.youtube.com/feeds/api/users/rowntreerob/uploads?vq=cpST8yz4w1w&prettyprint='true'
其中要求全面SDP描述为特定的YouTube视频,这样就在音频轨道可以流/起到了connnected 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