Javascript 如何使用android在网络视图中播放视频?

Javascript 如何使用android在网络视图中播放视频?,javascript,android,html,android-widget,android-webview,Javascript,Android,Html,Android Widget,Android Webview,我在sdcard中加载了一个本地html,在这个html中我使用了标记: <video id="myvideo" controls width="120" height="60" poster="img/img01.jpg" src="video/01.mp4"></video> 然后我发现我没有加载这个html,当我禁用标记:,html工作正常,我在我的android avd(2.2)中测试了这个 这应该适用于您已经在使用的2.x版本。但该标签表示,当浏览器全屏显

我在sdcard中加载了一个本地html,在这个html中我使用了标记:

<video id="myvideo" controls width="120" height="60" poster="img/img01.jpg" src="video/01.mp4"></video>


然后我发现我没有加载这个html,当我禁用标记:,html工作正常,我在我的android avd(2.2)中测试了这个

这应该适用于您已经在使用的2.x版本。但该标签表示,当浏览器全屏显示时,该标签将起作用

您的webview也可能支持它,但它需要全屏显示。 试试这个。 (不过我还没试过)

编辑:要使视图全屏显示,您可以尝试以下操作:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

首先要注意编码。这里是一个为Android webkit编码视频的示例和一些指导原则

然后。。。当我不得不面对这个问题时,我不得不进行一些研究并找到一些有用的答案。基本上,您必须以本机浏览器的方式打开视频

public class InredisChromeClient extends WebChromeClient implements OnCompletionListener, OnErrorListener {
    private InterfazWebInredis interfazWeb; // Use Your WebView instance instead

    private VideoView mCustomVideoView;

    private LinearLayout mContentView;
    private FrameLayout mCustomViewContainer;
    private WebChromeClient.CustomViewCallback mCustomViewCallback;
    private LinearLayout mErrorConsoleContainer;
    static final FrameLayout.LayoutParams COVER_SCREEN_GRAVITY_CENTER = new FrameLayout.LayoutParams(
            ViewGroup.LayoutParams.FILL_PARENT,
            ViewGroup.LayoutParams.FILL_PARENT, Gravity.CENTER);

    public InredisChromeClient(InterfazWebInredis iwi) {
        super();
        this.interfazWeb = iwi;
    }

    public void onShowCustomView(View view, CustomViewCallback callback) {
        // super.onShowCustomView(view, callback);
        if (view instanceof FrameLayout) {
            mCustomViewContainer = (FrameLayout) view;
            mCustomViewCallback = callback;
            mContentView = (LinearLayout) interfazWeb.findViewById(R.id.mainContainer);
            if (mCustomViewContainer.getFocusedChild() instanceof VideoView) {
                mCustomVideoView = (VideoView) mCustomViewContainer.getFocusedChild();
                // frame.removeView(video);
                mContentView.setVisibility(View.GONE);
                mCustomViewContainer.setVisibility(View.VISIBLE);
                interfazWeb.setContentView(mCustomViewContainer);
                mCustomVideoView.setOnCompletionListener(this);
                mCustomVideoView.setOnErrorListener(this);
                mCustomVideoView.start();
            }
        }
    }

    public void onHideCustomView() {
        if (mCustomVideoView == null)
            return;
        // Hide the custom view.
        mCustomVideoView.setVisibility(View.GONE);
        // Remove the custom view from its container.
        mCustomViewContainer.removeView(mCustomVideoView);
        mCustomVideoView = null;
        mCustomViewContainer.setVisibility(View.GONE);
        mCustomViewCallback.onCustomViewHidden();
        // Show the content view.
        mContentView.setVisibility(View.VISIBLE);
    }

    @Override
    public void onCompletion(MediaPlayer mp) {
        mp.stop();
        mCustomViewContainer.setVisibility(View.GONE);
        onHideCustomView();
        interfazWeb.setContentView(mContentView);
    }

    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        interfazWeb.setContentView(R.layout.main);
        return true;
    }
}
因此,这段代码在上一篇文章中得到了很多启发

好吧,这样做的行为是打开视频全屏。我不知道是否有可能在网页中自己的框架中播放视频。但是这个解决方案对我起了作用,我希望你也能起作用


问候

谢谢!但是如何使浏览器全屏显示呢?现在我加载的html页面太大了,我 当我想查看所有页面时,必须使用滚动条来控制它,以及如何将加载的htnl页面自动调整到我的webview中,并使webview全屏显示?有人根据这个答案使其工作吗?这对我不起作用。顺便说一句,我在链接的文档中也找不到关于全屏的消息。它上面写着“全屏模式下的标签支持”,下面讨论了“浏览器”功能。如何在WebView对象上设置ContentView?我想我失踪了something@powerj1984默认情况下,当您单击视频链接时,WebView会尝试在新窗口中打开它,因此平台会为您执行此操作。我不知道他们是否改变了这种行为,这就是ir在FroYo中的工作方式。我知道这很旧,但我也没有真正得到setContentView调用。setContentView不是WebView的函数,也不是它的父函数。这是你自己做的吗?您能否提供该项目的完整来源?非常感谢。@FuegoFingers,字段
interfazWeb
InterfazWebInredis
的一个实例,它扩展了
活动
。我是android开发新手,我想在本地存储html(资产文件夹)上播放本地存储视频在android网页上..但当我点击html上的视频时,它不会播放..我看到了你的代码,但我不知道在哪里使用你的代码这将帮助你解决你的问题。但它仍然存在一些问题,这在链接中提到。