Что происходит (под обложкой), когда я нажимаю кнопку «Play» на YouTube? - PullRequest
3 голосов
/ 04 мая 2011
  1. Примечание 1: Этот вопрос относится только к HTML5 видео, а не к Flash-видео.
  2. Примечание 2: Кроме того, оно специально предназначено для воспроизведения видео HTML5 на Android .

Учитывая следующее видео HTML5 на YouTube:

<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 : когда я касаюсь этого знакомого стрелка, указывающая вправо в середине изображения, представляющего клип, Android автоматически переключается на другое действие, которое воспроизводит видео, вместо воспроизведения его в WebView.

Теперь я хотел быначать воспроизведение видео точно таким же образом, но из моего приложения без пользователю нужно «нажать» на эту стрелку, указывающую вправо .

Я пыталсяпросто передайте этот src= URL (http://v19.lscache2.c.youtube.com/videoplayback?begin...) в WebView, тонкийКинг, что это вызовет WebChromeClient.onShowCustomView() точно так же, как и то, что происходит, когда я нажимаю стрелку вправо , но ... на самом деле ничего не происходит, когда я это делаю.

Итак, мне интересно: Что на самом деле происходит, с точки зрения WebView и WebChromeClient, когда я нажимаю эту стрелку, указывающую вправо ?

Что мне нужно сделать, чтобы «щелкнуть»что стрелка, указывающая вправо ?

Обновление: благодаря комментарию от @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 Ответ

1 голос
/ 10 июля 2011

Я бы предположил, что Intent запускается для отображения видео с указанным URL-адресом и всеми другими атрибутами.

Вы пытались запустить Intent, как это, с некоторыми из атрибутов, перечисленных в качестве дополнительных для намерения??

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