Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Android 4.0中的HTML5VFullScreen $SurfaceVideoView中获取HTML5视频URI?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_419_0@
我想在用户点击视频控制栏中的全屏按钮时获取 HTML5视频URI.根据 this,Android 4.0中的HTML5视频视图是SurfaceView,而不是VideoView.

有人能告诉我如何在SurfaceVideoView中获取URI吗?这是我的代码.非常感谢.

webView.setWebChromeClient(new WebChromeClient(){
  @Override
  public void onShowCustomView(View view,CustomViewCallBACk callBACk) {
    super.onShowCustomView(view,callBACk);
    if (view instanceof FrameLayout){
      final FrameLayout frame = (FrameLayout) view;
      if (frame.getFocusedChild() instanceof SurfaceView){
        SurfaceView video= (SurfaceView) frame.getFocusedChild();
      }
    }
  });

解决方法

容易,使用反射.把它放在onShowCustomView()方法中:
android.net.Uri mUri = null;

try
{
    @SuppressWarnings("rawtypes")
    Class _VideoSurfaceView_Class_ = Class.forName("android.webkit.HTML5VideoFullScreen$VideoSurfaceView");

    java.lang.reflect.Field _HTML5VideoFullScreen_Field_ = _VideoSurfaceView_Class_.getDeclaredField("this$0");

    _HTML5VideoFullScreen_Field_.setAccessible(true);

    Object _HTML5VideoFullScreen_Instance_ = _HTML5VideoFullScreen_Field_.get(((FrameLayout) view).getFocusedChild());

    @SuppressWarnings("rawtypes")
    Class _HTML5VideoView_Class_ = _HTML5VideoFullScreen_Field_.getType().getSuperclass();

    java.lang.reflect.Field _mUri_Field_ = _HTML5VideoView_Class_.getDeclaredField("mUri");

    _mUri_Field_.setAccessible(true);

    mUri =  (Uri) _mUri_Field_.get(_HTML5VideoFullScreen_Instance_);
}
catch (Exception eX)
{   
}

if (mUri != null)
{
    // There you have,mUri is the URI of the video
}

大佬总结

以上是大佬教程为你收集整理的如何在Android 4.0中的HTML5VFullScreen $SurfaceVideoView中获取HTML5视频URI?全部内容,希望文章能够帮你解决如何在Android 4.0中的HTML5VFullScreen $SurfaceVideoView中获取HTML5视频URI?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。