首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在webview上播放视频

如何在webview上播放视频
EN

Stack Overflow用户
提问于 2013-06-13 07:40:56
回答 2查看 385关注 0票数 2

在bleacher report应用程序上,他们有一个WebView,里面有Youtube视频。当您按全屏图标时,视频将在全屏上播放。我该怎么做呢?是服务器端的问题还是android的问题?我只想补充一点,即使这是一个youtube视频,你看到的播放器也不是youtube播放器,而是另一个播放器。

编辑: youtube是一个组件,是url页面。这不是一个youtube的网页,所以我不能使用"shouldOveriteUrl",而且,我说的不仅仅是youtube视频,我说的是任何视频组件。我可以在我的服务器上做一些事情,比如用另一个播放器包装视频组件吗?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-06-13 07:46:02

//尝试这个将支付Youtube视频的示例活动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyWebViewClient extends WebViewClient {

public Activity mActivity;

public MyWebViewClient(Activity activity,) {
    super();
    mActivity = activity;
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    Uri uri = Uri.parse(url);
    if (uri.getHost().contains("youtube.com")) {
        IntentUtils.viewYoutube(mActivity, url);
        return true;
    }

    return false;
}

public static void viewYoutube(Context context, String url) {
    IntentUtils.viewWithPackageName(context, url, "com.google.android.youtube");
}

public static void viewWithPackageName(Context context, String url, String packageName) {
    try {
        Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        if (isAppInstalled(context, packageName)) {
            viewIntent.setPackage(packageName);
        }
        context.startActivity(viewIntent);
    } catch (Exception e) {
        Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        context.startActivity(viewIntent);
    }
}

public static boolean isAppInstalled(Context context, String packageName) {
    PackageManager packageManager = context.getPackageManager();
    try {
        packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
        return true;
    } catch (NameNotFoundException e) {
    }
    return false;
}

@Override
public void onPageFinished(final WebView view, String url) {
    String javascript = "javascript:" +
        "var iframes = document.getElementsByTagName('iframe');" +
        "for (var i = 0, l = iframes.length; i < l; i++) {" +
        "   var iframe = iframes[i]," +
        "   a = document.createElement('a');" +
        "   a.setAttribute('href', iframe.src);" +
        "   d = document.createElement('div');" +
        "   d.style.width = iframe.offsetWidth + 'px';" +
        "   d.style.height = iframe.offsetHeight + 'px';" +
        "   d.style.top = iframe.offsetTop + 'px';" +
        "   d.style.left = iframe.offsetLeft + 'px';" +
        "   d.style.position = 'absolute';" +
        "   d.style.opacity = '0';" +
        "   d.style.filter = 'alpha(opacity=0)';" +
        "   d.style.background = 'black';" +
        "   a.appendChild(d);" +
        "   iframe.offsetParent.appendChild(a);" +
        "}";
    view.loadUrl(javascript);

    super.onPageFinished(view, url);
}
票数 1
EN

Stack Overflow用户

发布于 2013-06-13 07:48:09

如果你想让视频在webview上运行,而不使用Android中的应用程序,它必须有服务器端的视频播放器。

默认情况下,Webview不允许使用Javascript,这很可能是您的视频播放器在网站上使用的脚本。你很可能需要告诉你的Webview使用Javascript,以便它至少尝试播放视频(我说尝试,因为我自己从来没有这样做过,我通常使用播放器活动来播放视频)。

因此,通过引用您的活动webview对象,您可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
browser = (WebView) findViewById(R.id.webbrowser_wvViewer);    
browser.getSettings().setJavaScriptEnabled(true);

希望这对你有帮助..:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17081719

复制
相关文章
播放视频时如何在视频帧上添加水印
之前的一篇文章中我们介绍了播放视频的时候调整音频的音量,我们能否在播放视频的时候在视频画面上加上水印?
马上就说
2020/11/11
3.1K0
iOS WebView内联播放视频无声音
在webview设置了 _webView.allowsInlineMediaPlayback = YES; 之后发现webview播放的视频无声音,解决方法如下,开启音频 //Enable Audio NSError *error; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error]; if (error) { NSLog(@"Error in setting catego
用户4458175
2020/02/12
1.9K0
Android Webview 后台播放音视频实现
问题 我们使用WebView播放音乐或视频(比如油管视频) 前台播放一直很正常,但是比较费电 进入后台后就会暂停播放 所以需求就是我们想要App在后台时同样播放音视频 解决方法 重写onWindowVisibilityChanged方法,让网页任然感觉像是在前台执行。 关键代码 override fun onWindowVisibilityChanged(visibility: Int) { super.onWindowVisibilityChanged(View.VISIBLE)
技术小黑屋
2020/02/21
2.4K0
如何在小程序中实现视频播放
在如何使用小程序媒体组件这篇文章中,我们简单介绍了video视频组件的使用,这篇文章中,将对视频播放做一些补充,同时介绍API的使用。
f1不如蜗牛
2018/11/12
32.8K7
如何在小程序中实现视频播放
Android WebView在Android4.4手机无法播放视频
原由: 公司WebiVew里新增视频播放,使用Android4.4以上手机打开都没有问题, 但是4.4的手机第一次可以打开,第二次就不行了,不返回网页进度,并报下列错误 [ERROR:in_process_view_renderer.cc(189)] Failed to request GL process. Deadlock likely: 0
Jingbin
2019/08/01
1.3K0
如何在视频云管理平台获取VLC视频流播放地址?
我们知道在视频监控日益完善的今天,进行视频的综合管理是一件具有挑战的事请。如何将不同协议的摄像头进行统一的管理?这也是我们研发智能视频云管理平台的初衷。
EasyNVR
2020/05/26
1.6K0
网页上播放视频的免费的播放器_CKPlayer
今天在工作的过程中遇到一个功能:在网页中加入视频播放器,类似于我们经常看到的优酷,爱奇艺等视频网站的功能。
Hongten
2018/09/13
13.4K0
网页上播放视频的免费的播放器_CKPlayer
小窗播放视频的原理和实现(上)
本文对小窗视频播放进行了详细的研究,针对几种实现方案进行了深入的对比分析,进而给出实现小窗视频播放的最优解。
QQ音乐技术团队
2018/02/01
11K2
小窗播放视频的原理和实现(上)
android视频系列:视频解码篇--android上视频播放的实现
前言 要开始正儿八经地写视频系列文章了。思来想去,从播放器入手,再合适不过了。视频文件,只有播放出来,才显示出了意义;只有播放出来,才暴露出各种问题。先理解播放的场景,才能更好地理解视频处理时所选取的策略。 播放器做了什么 播放器播放视频,就是一步步剖开视频的内容,显示在屏幕上。 最简单的理解方式,是把视频文件看做一个容纳了很多图片的容器。播放时,从容器里取出一张图片,放到屏幕上显示,隔一点时间后,再从容器里取出下一张图,放到屏幕上。按次序把图片一张一张显示到屏幕上,等到最后一张也显示到屏幕上后,播放就完成
天天P图攻城狮
2018/02/02
4.1K0
android视频系列:视频解码篇--android上视频播放的实现
使用OpenCV在Qt控件上播放视频
https://gitee.com/fensnote/demo_code/tree/master/qtCode/opencv_video
fensnote
2021/05/31
2.9K0
使用OpenCV在Qt控件上播放视频
解决Android WebVIew中视频播放前出现的灰色三角形播放图标
重写 WebChromeClient 类中的 getDefaultVideoPoster 方法,返回一个透明的bitmap.
Petterp
2022/02/09
1.4K0
解决Android WebVIew中视频播放前出现的灰色三角形播放图标
WebView流程分析(上)
断断续续调试好几天,才把X5WebView的整体流程大概了解清除。本篇是上篇,侧重于讲java层的逻辑。
龙泉寺扫地僧
2019/02/20
1.6K0
WebView流程分析(上)
如何在自有app实现音视频播放功能?
近年来,视频、直播电商高速增长,主要原因是视频,直播内容能够承载较图文内容更为丰富的信息、用户接受度更高。并且随着直播渗透率不断加深,已与娱乐、学习、购物、工作等越来越多场景融合在一起。在互联网发展的下半场,随着头部互联网平台的布局与垂直领域应用的发展,直播行业将迎来更多元化的应用场景,潜在用户规模将继续扩大,而小程序直播就应运而生。
火爆的小茶壶
2022/08/30
6360
如何在自有app实现音视频播放功能?
如何在高版本谷歌Chrome中播放RTSP实时视频?
随着互联网基础设施的完善以及4G、5G等技术的大规模商用,在Chrome、Firefox、Edge等浏览器播放RTSP视频流也慢慢成为了信息化系统的行业标准。
猿大师
2021/10/10
3.7K0
ARKit 在模型上播放视频(附进度控制)
国际惯例先上效果图 [Untitled.gif] ####原理 把模型的material 设置成AVPlayer 就可以了 SCNMaterial \* material = [[SCNMaterial alloc]init]; material.diffuse.contents = self.player; self.showNode.geometry.materials = @[material]; ####代码 // // ViewController.m // palyV
2018/05/07
1.4K2
ARKit 在模型上播放视频(附进度控制)
WebRTC视频无法播放,如何在EasyCVR添加UDP打洞程序?
TSINGSEE青犀视频旗下的视频平台可支持多协议、多类型的海量设备接入与分发,包括国标GB28181协议、RTMP、RTSP/Onvif等安防标准协议,以及厂家私有协议如海康ehome、海康SDK、大华SDK等。在视频输出上,可支持RTSP、FLV、HLS、WebRTC等格式。
TSINGSEE青犀视频
2022/04/21
8340
DirectShow播放视频
本来想用VMR9绘制到D3D的Texture上的, 试着弄了一下, 慢得真够可以的, 还是直接全屏(窗口)放得了 代码也懒得写了, 直接拿SDK里的VMRPlayer中CMovie类用就行 1: CMovie g_movie NULL 2: g_movie CMovieg_hWnd 4: g_movieOpenMovie 6: g_moviePlayMovie 8: RECT rc 10: GetClientRectg_hWnd rc 11: g_moviePutMoviePositio
逍遥剑客
2018/05/21
1.3K0
点击加载更多

相似问题

如何在Android上用webView播放视频

12

在WebView上播放youtube视频

13

如何在Android WebView iframe上播放和暂停视频播放?

28

如何在WebView上播放内联html 5视频

15

视频无法在android webview上播放

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文