如何在 WebViewClient 中播放 YouTube 视频?

发布于 2024-12-10 06:12:09 字数 929 浏览 0 评论 0原文

问题是:我似乎无法在 WebViewClient 中播放 YouTube 视频。我尝试过使用 Intent,但这只重定向到浏览器或 YouTube 应用程序(使用 vnd:+VIDEO_ID 时)。我想进入 YouTube 页面(例如:http://www.youtube.com/user/thenewboston )并且仍然位于 webview 客户端内部 - 用户不应该能够离开应用程序。

当我自己尝试此操作时,我能够看到视频/频道的 YouTube 移动页面。一切正常,除了当我触摸 Droid 上的视频时,它所做的只是突出显示视频,然后不执行任何操作。

我需要这个,因为我的应用程序是免费的,并且由应用程序底部的广告横幅提供资金 - 我只能使用 WebViewClient 显示,而不是本机 Android 浏览器。 JavaScript 和插件已启用。我使用 Froyo 作为目标 SDK,并且我的手机上安装了 Adob​​e Flash Player。

setContentView(R.layout.internetv);
final WebView wv = (WebView) findViewById(R.id.web_holder);
/* for example */ 
wv.loadUrl("http://www.youtube.com/user/PokeGuideHD"); 
wv.setWebViewClient(new myClient());
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled (true);
wv.getSettings().setBuiltInZoomControls(true);
wv.requestFocus(View.FOCUS_DOWN);

Here is the problem: I can't seem to make a YouTube video work while still inside of a WebViewClient. I have tried using an Intent, but that only redirects to the browser or the YouTube App (when using a vnd:+VIDEO_ID). I would like to be on a youtube page (example: http://www.youtube.com/user/thenewboston) and still be inside of the webview client - the user should not be able to leave the app.

When I have tried this on my own, I am able to see the YouTube mobile page of the video/channel. Everything works except the fact that when I touch the video on my Droid, all it does is highlight the video and then doesn't do anything.

I need this because my application is free and is financed by an advertisement banner across the bottom of the app - which I can only display with WebViewClient not the native Android browser. JavaScript and plug-ins are enabled. I'm using Froyo as the target SDK and do have Adobe Flash Player installed on my phone.

setContentView(R.layout.internetv);
final WebView wv = (WebView) findViewById(R.id.web_holder);
/* for example */ 
wv.loadUrl("http://www.youtube.com/user/PokeGuideHD"); 
wv.setWebViewClient(new myClient());
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled (true);
wv.getSettings().setBuiltInZoomControls(true);
wv.requestFocus(View.FOCUS_DOWN);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笔芯 2024-12-17 06:12:09

您无法将它们显示为嵌入的,除非在具有 Flash 的设备上。

但是,如果您可以解析 YouTube 视频详细信息,则可以构建一个 ACTION_VIEW Intent,将其显示在 YouTube 应用程序上...对于那些具有 YouTube 应用程序的 Android 设备。

您还可以尝试使用 HTML5 的标签,据我所知,浏览器应用程序支持该标签,因此可以在 WebView 中使用。

编辑:

它看起来像这样......

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

You cannot show them embedded except perhaps on devices that have Flash.

However, if you can parse out the YouTube video details, you may be able to construct an ACTION_VIEW Intent that will show them on the YouTube application...for those Android devices that have the YouTube application.

You might also experiment with HTML5's tag, which AFAIK is supported in the Browser application and may therefore work in WebView.

EDIT:

It will look something like this...

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文