【问题标题】:What happens (under the cover) when I click the Play "button" in YouTube?当我单击 YouTube 中的“播放”按钮时会发生什么(在封面下)?
【发布时间】:2011-05-04 00:06:01
【问题描述】:
  1. 注1:本题指 仅限 HTML5 视频,而非 Flash 视频。
  2. 注 2:另外,它特别 目标 HTML5 视频播放 Android

鉴于 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= 属性识别为正在加载的 URL……究竟是什么?

我知道WebView 自己无法播放 HTML5 视频,所以将它们交给WebChromeClient:当我触摸图片中间那个熟悉的right-pointing arrow 时剪辑后,Android 会自动切换到播放视频的不同 Activity,而不是在 WebView 中播放。

现在,我想在我的应用程序中以完全相同的方式开始播放视频,无需用户“点击”right-pointing arrow

我试图简单地将 src= URL (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')

问题仍然存在:是什么触发了这种情况?

【问题讨论】:

  • 您是否尝试过使用调试器来确定Activity 实际启动以播放视频?
  • @dronus LogCat 显示活动是MediaPlayer,其中有很多来自QC_CORE 的Log.i() 和来自QCvdec 的一些Log.d()。但是,我不知道是什么开始了活动。谢谢。

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


【解决方案1】:

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

您是否尝试过启动这样的 Intent,其中的一些属性被列为该 Intent 的额外属性?

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

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    相关资源
    最近更新 更多