在YouTube中提供以下HTML5视频:
<div id="player">
<video poster="data:image/gif;
base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
src="http://v19.lscache2.c.youtube.com/videoplayback?begin=0&itag=18&
ipbits=0ampsignature=151700E49EA1B695940D89926C1C07CDF0C176F0.B7DE0453C70BFBA0BA644DE7F6BBB72E9EE43B5F&
sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cratebypass%2Coc%3AU0hPSVRSUl9FSkNOOV9MTFZF&
sver=3&
ratebypass=yes&expire=1304474400&len=265000&key=yt1&ip=0.0.0.0&
id=55884c15b4baba8f&el=home&yms=5602568839599417322&app=youtube_mobile" class="bn" width="1" height="2" id="player_VYhMFbS6uo8">
</video>
</div>
我可以将src=
属性标识为正在加载的网址......究竟是什么?
我知道WebView无法自行播放HTML5视频,因此会将其移至WebChromeClient:当我触摸那个熟悉的right-pointing arrow时在代表剪辑的图像中间,Android会自动切换到播放视频的其他活动,而不是在WebView中播放。
现在,我想以完全相同的方式开始播放视频,但是在我的应用中,没有用户必须“点击”right-pointing arrow。
我尝试简单地将src=
网址(http://v19.lscache2.c.youtube.com/videoplayback?begin..。)移交给WebView,认为这会触发WebChromeClient.onShowCustomView()
,就像点击right-pointing arrow时所发生的那样但是......当我这样做时,没有任何事情发生。
所以,我想知道:从WebView
和WebChromeClient
的角度来看,当我点击right-pointing arrow时会发生什么?
我需要做什么才能“点击”right-pointing arrow?
更新:感谢@dronus的评论我在LogCat中找到以下内容(点击播放按钮手动后):
05-03 19:35:07.296: INFO/StagefrightPlayer(121):
setDataSource('http://v19.lscache2.c.youtube.com/videoplayback?begin=0
&itag=18
&ipbits=0
&signature=BB85C25344502EF07EC970250EFBF6661098373E.6A7E108FA6F48A0741CDF7A356B0E1474F185195
&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cratebypass%2Coc%3AU0hPSVRTVl9FSkNOOV9MTVpJ
&sver=3
&ratebypass=yes
&expire=1304488800
&len=265000
&key=yt1
&ip=0.0.0.0
&id=55884c15b4baba8f
&el=watch
&yms=5602637908081220405
&app=youtube_mobile')
问题仍然存在:是什么触发了这个?
答案 0 :(得分:1)
我猜想会启动一个Intent来显示带有指定网址和所有其他属性的视频。
您是否曾尝试使用列出为intent的附加内容的某些属性来启动这样的Intent?
Intent tostart = new Intent(Intent.ACTION_VIEW);
tostart.setDataAndType(Uri.parse(movieurl), "video/*");
startActivity(tostart);