相关疑难解决方法(0)

在android webview中全屏播放HTML5视频

好吧,我已经好几天了,如何在android WebView上以全屏模式显示HTML5视频.

我设法在我的网页浏览中播放HTML5视频.在全屏模式下显示视频时出现问题.

正如我所知,android有两种处理<video>标签的方法:

  1. 在Android版本<= 2.3.3上,onShowCustomView方法被触发,我可以拥有VideoView实例,并在视频完成时设置监听器,设置控制器等.到目前为止一切顺利.

  2. 在ICS(可能是3.0及更高版本)上,看起来<video>以不同的方式处理.播放HTML5视频时,onShowCustomView未在正常模式下调用 - 看起来WebView内部有一个内部业务播放视频,并显示<video>标签中定义的所有控件 - I不能以任何方式访问它.实际上,如果视频是在正常模式下播放的,那么这是正常的,因为控件在那里并且正在工作.

这导致了一个大问题:当以全屏模式显示视频时,正在调用onShowCustomView - 但在ICS上,"view"参数不是VideoView的实例.

我设法发现该实例是VideoSurfaceView,一个HTML5VideoFullScreen类的私有内部类.我们访问这个内部类的唯一方法是通过反射.

在查看了这个类的GrepCode之后,我了解到与VideoView不同,HTML5VideoFullScreen $ VideoSurfaceView不包含我可以监听其事件或访问其控件的MediaPlayer实例.我唯一能做的就是把这个VideoSurfaceView原样放在一个全屏布局中而不用控制它.

底线 - 当以全屏显示视频时,我不知道视频何时结束,其控件未显示 - 这非常令人伤心.我无法获得关闭全屏的触发器.

我尝试了几个不成功的解决方法:

  1. 反思:我试图从内部类VideoSurfaceView到达HTML5VideoFullScreen实例,该实例包含一个MediaPlayer成员.我没有设法得到它,我不确定这是否可行(ViewSurfaceView不保存其所有者的实例).

  2. 通过Javascript(例如onended)注册视频事件,并通过JavascriptInterface处理我在JAVA中需要的东西:我发现这个解决方案不可靠,因为在这样做时我遇到了另一个问题:<video>标签可以嵌套在一个.iframe源不是我的,我无法获取其内容(getElementById或getElementsByTagName [i]为空) - 这意味着,我无法访问iframe中的<video>元素.

我仍在寻找解决方案,关于这个问题的报道很少.有人设法解决它吗?非常感谢帮助!

VideoView类:这里(有MediaPlayer)

HTML5VideoFullScreen $ VideoSurfaceView类:这里(没有MediaPlayer)

android android-webview html5-video

92
推荐指数
3
解决办法
13万
查看次数

Android上的HTML5 <video>元素

根据:

http://developer.android.com/sdk/android-2.0-highlights.html

Android 2.0应该支持HTML5视频元素.我无法使用摩托罗拉Droid工作,并且无法在任何HTML5视频示例页面上成功查看视频.由于目前不支持QuickTime或Flash,这是我在网页中嵌入mp4视频时唯一能想到的.有人有运气吗?

video mobile html5 android

89
推荐指数
4
解决办法
21万
查看次数

只有单个mp4文件的MPEG-DASH视频流

我正在研究一个星期,找到一个简单且独立于平台的方法来将mp4文件流式传输到任何浏览器.在浏览器不兼容的情况下,将使用渐进流(直接下载)方法.我的情况是这样的:

  • 单个mp4文件(不分段和多路复用(音频+视频))
  • 支持HTTP字节范围服务
  • 浏览器不兼容时支持渐进式流(直接文件下载)

在研究Apple HLS,Adobe Flash Stream,Microsoft Smooth,RTSP和MPEG-DASH之后,似乎MPEG-DASH是正确的解决方案.但问题是MPEG-DASH迫使我将mp4文件拆分为单独的分段文件,这导致存储mp4文件的重复消耗空间,因为在浏览器不兼容的情况下我必须支持渐进式流.然后存储带有分段mp4文件的单个mp4文件是不可避免的.

问题是:有没有办法在任何浏览器中将单个 mp4文件作为http流渐进流提供?

MPEG-DASH协议表示它支持多路复用文件,但问题是dash.js不支持它.有没有其他javascript播放器支持带字节范围请求的多路复用和单个mp4文件?

任何其他提交我的场景条件的解决方案都受到欢迎.谢谢.

参考文献: BitCodin.com 1 BitCodin.com 2

javascript http video-streaming mpeg-dash dash.js

3
推荐指数
2
解决办法
9158
查看次数