当我点击YouTube中的“播放”按钮时会发生什么(在封面下)?

时间:2011-05-04 00:06:01

标签: android webview html5-video android-webview webchromeclient

  1. 注1:这个问题是指 仅限 HTML5 视频,而不是Flash视频。
  2. 注2:另外,具体而言 目标是播放HTML5视频 的的Android 即可。
  3. 在YouTube中提供以下HTML5视频:

    <div id="player">
    <video poster="data:image/gif;
    base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" 
    src="http://v19.lscache2.c.youtube.com/videoplayback?begin=0&amp;itag=18&amp;
    ipbits=0ampsignature=151700E49EA1B695940D89926C1C07CDF0C176F0.B7DE0453C70BFBA0BA644DE7F6BBB72E9EE43B5F&amp;
    sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cratebypass%2Coc%3AU0hPSVRSUl9FSkNOOV9MTFZF&amp;
    sver=3&amp;
    ratebypass=yes&amp;expire=1304474400&amp;len=265000&amp;key=yt1&amp;ip=0.0.0.0&amp;
    id=55884c15b4baba8f&amp;el=home&amp;yms=5602568839599417322&amp;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时所发生的那样但是......当我这样做时,没有任何事情发生。

    所以,我想知道:从WebViewWebChromeClient的角度来看,当我点击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')
    

    问题仍然存在:是什么触发了这个?

1 个答案:

答案 0 :(得分:1)

我猜想会启动一个Intent来显示带有指定网址和所有其他属性的视频。

您是否曾尝试使用列出为intent的附加内容的某些属性来启动这样的Intent?

Intent tostart = new Intent(Intent.ACTION_VIEW);
tostart.setDataAndType(Uri.parse(movieurl), "video/*");
startActivity(tostart);