最近在做一项目的时候,需要播放Youtube视频。播放方式大体有三种
1. WebView(我最终用的)
2. Youtube SDK(需要谷歌开发者账户)
3. VideoView
其他两种方式大家自行研究,本篇想说的时候在使用WebView的时候遇到的不能自动播放问题。
注:Demo中使用的是kotlin

首先说一下webview的正常加载Youtube视频的逻辑

嵌入视频

  1. 在计算机上,找到想要嵌入的 YouTube 视频。
  2. 在视频下方,点击分享 。
  3. 点击嵌入。
  4. 复制出现的方框中的 HTML 代码。
  5. 将该代码粘贴到您的博客或网站 HTML 中
    项目中代码:
val videohtml = "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/HxHRbxhNZyU?list=PLbuqoK5oI0xKH4exZzZDMOCqpFRi2Ar6E?loop=2&autoplay=1\" frameborder=\"0\" allowfullscreen></iframe>"

但是最终发现始终无法完成自动播放,提示“如果没有开始自动播放,请重启终端设备”。

看网上有很多说法
集中的可以看
https://stackoverflow.com/questions/15946183/android-webview-html5-video-autoplay-not-working-on-android-4-0-3
https://stackoverflow.com/questions/16416935/youtube-iframe-embeds-cannot-autoplay-on-android

最终解决方案

但是我最终采用了一个看似暴力的方法,模拟点击,其中故意延迟一秒防止还没有加载出来。
实现方式如下:

        webview.setWebChromeClient(object : WebChromeClient() {override fun onProgressChanged(view: WebView, newProgress: Int) {Log.d(TAG, "progress:" + newProgress)if (newProgress == 100) {var downTime = SystemClock.uptimeMillis()downTime += 1000val downEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_DOWN, view.x + view.width / 2, view.y + view.height / 2, 0)val upEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_UP, view.x + view.width / 2, view.y + view.height / 2, 0)view.onTouchEvent(downEvent)view.onTouchEvent(upEvent)downEvent.recycle()upEvent.recycle()}super.onProgressChanged(view, newProgress)}})

Youtube 视频自动播放相关推荐

  1. html插入视频时不自动播放,html5中嵌入视频自动播放的问题解决

    在h5页面中嵌入视频的情况是比较多件的,有时候会碰到需要自动播放的情况,之前根本觉得这不是问题,但是自己的项目中需要视频的时候就有点sb了,达不到老板的要求,那个急呀~~~ 各种查资料,找到一个方法, ...

  2. twitter全自动发推_如何阻止Twitter视频自动播放

    twitter全自动发推 As you scroll through your Twitter Timeline, by default, videos will start autoplaying. ...

  3. uniapp ----小程序上下滑动页面,视频自动播放(完整代码)

    uniapp ----小程序上下滑动页面,视频自动播放(完整代码) <template><view class="box"><f-navbar tit ...

  4. 视频自动播放代码(优酷、搜狐、酷6、土豆等)

    一.优酷.搜狐视频自动播放代码(更换地址即可) 如下: width=700 height=550 type=application/x-shockwave-flash wmode="opaq ...

  5. 详解:如何让优酷、土豆、56、mofile视频自动播放

    详解:如何让优酷.土豆.56.mofile视频自动播放 一.优酷视频自动播放的方法 (引用优酷播放器做背景音乐时,可将高宽设置为较小值以达到隐藏效果,当然必须设置为自动播放) 如: <embed ...

  6. iOS 微信 音视频自动播放 原生接口WeixinJSBridge API(一些整理 小技巧)

    原文链接1:https://www.w3ctech.com/topic/1165 原文链接2:https://www.cnblogs.com/jasonduan/p/5635048.html 做一下整 ...

  7. 微信H5同层播放器以及视频自动播放

    iOS之前已经解决了视频播放默认全屏,且浮在页面最顶端的问题 playsinline webkit-playsinline 这样就可以在视频之上进行一些操作,实现诸如弹幕.自定义播放控件等的效果. 但 ...

  8. PPT视频自动播放?

    PPT视频自动播放? 找了半天,哎呀

  9. 解决手机微信浏览器视频自动播放和默认全屏问题

    1.早期因为带宽和流量的因素,移动端浏览器禁止视频自动播放,现在现在流量便宜了.手机硬件越来越好了,部分可支持了 2.在移动端浏览器, video 在用户点击播放或者通过API video.play( ...

  10. 各大网站视频自动播放代码(优酷、搜狐、酷6、土豆等)

    注:可以复制或涂蓝后同时按左下角CTRL+C即可复制.   如何将Flash素材保存到电脑硬盘?   http://lxc66188.blog.163.com/blog/static/91764986 ...

最新文章

  1. java bean 工厂模式_Spring框架通过工厂创建Bean的三种方式实现
  2. mybatis的逆向工程
  3. java web源代码_检测Java Web应用程序而无需修改其源代码
  4. 华为云一站式AI开发平台ModelArts获2019全球智博会金奖
  5. 华为发布MetaAAU 能耗降低30% 性能节能双提升
  6. wxpython 树菜单单击_请教怎么在wxpython调用windows系统的右键菜单(context menu)?
  7. 【2】Keras之激活函数
  8. Lua中的聊天屏蔽敏感词汇
  9. 使用WebService获取第三方服务数据
  10. 点歌机终端服务器停止服务怎么办,点歌机常见问题解析
  11. Winodws update auto update client(wuauclt)
  12. linux cp -v,linux cp
  13. 21个奇葩注释,程序员看了都点赞
  14. 户外蓝牙小音箱值得买
  15. python for循环与函数
  16. testflight怎么做版本更新_苹果更新 TestFlight 3.0 版本:能自动更新内测应用了
  17. 华为代理服务器相关配置
  18. [小技巧]chrome 标签切换快捷键
  19. HTML基础篇(2)
  20. 上海地铁和Metro大都会手机应用的常见问题

热门文章

  1. Ubuntu20.04下载安装UltraEdit(高级文本编辑器)
  2. HTML5视频方案:支持iPad Safari、Firefox、Chrome、IE9876
  3. EpiDope:用于线性B细胞表位预测的深度神经网络
  4. 百度UEditor编辑器压缩(缩放)图片只压缩jpg格式的解决方法
  5. android 清理垃圾代码_这7个手机文件夹,让你更了解如何清理手机内存
  6. 【Golang】家庭收支记账软件
  7. 服务器添加打印机显示没有权限,无法连接打印机(没有权限使用网络资源)解决方法和原因...
  8. win7设置ipsec_Win7系统设置L2TP的方法【图文教程】
  9. linux img 转 iso,Ubuntu下将img 转化成iso
  10. crispr基因编辑_用CRISPR编程基因组