android webview怎样点击按钮全屏播放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android webview怎样点击按钮全屏播放相关的知识,希望对你有一定的参考价值。

参考技术A 重写以下两个方法:
1.WebChromeClient.onShowCustomView(android.view.View,android.webkit.WebChromeClient.CustomViewCallback) ;
2.WebChromeClient.onHideCustomView()
然后写你的逻辑就可以了

如何通过单击 Android 中的按钮使 VideoView 全屏显示?

【中文标题】如何通过单击 Android 中的按钮使 VideoView 全屏显示?【英文标题】:How to make a VideoView full screen by clicking a button in Android? 【发布时间】:2015-05-28 19:43:40 【问题描述】:

我的片段类中有一个 VideoView。还有一个按钮可让您播放和暂停视频。当我单击按钮播放视频时,我希望视频全屏显示。我怎样才能以编程方式而不是通过 XML 来做到这一点?

这是我的片段的来源:

public class Test extends Fragment

    private VideoView vid;
    private Button    playpause1;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
    
        root = (ViewGroup) inflater.inflate(R.layout.test, null);

        vid = (VideoView) root.findViewById(R.id.videoView1);
        vid.requestFocus();
        vid.setVideoURI(Uri.parse("my_path"));

        playpause1 = (Button) root.findViewById(R.id.playpause1);
        playpause1.setText(R.string.buffering);
        playpause1.setEnabled(false);

        playpause1.setOnClickListener(new OnClickListener()
        
            @Override
            public void onClick(View v)
            
                if vid.isPlaying())
                
                    vid.pause();
                
                else
                
                   vid.start();
                
            
        );


       vid.setOnPreparedListener(new OnPreparedListener()
        
            @Override
            public void onPrepared(MediaPlayer mp)
            
                playpause1.setEnabled(true);

                mp.setOnInfoListener (new MediaPlayer.OnInfoListener()
                
                    @Override
                    public boolean onInfo (MediaPlayer mp, int what, int extra)
                    
                        if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START)
                        
                            playpause1.setEnabled(false);
                        

                        if(what == MediaPlayer.MEDIA_INFO_BUFFERING_END)
                        
                            playpause1.setEnabled(true);
                        
                        return false;
                    
                );
            
        );
    

【问题讨论】:

【参考方案1】:

    使用自己的布局创建一个新的 Fragment(其中包含全尺寸的 videoView)。

    新的 Fragment 应该得到当前的播放状态:

public static FullVideoFragment newInstance(final long playedDuration) final FullVideoFragment fragment = new FullVideoFragment(); final Bundle bundle = new Bundle(); bundle.putLong("playedDuration", playedDuration); fragment.setArguments(bundle); return fragment;

    在同一个片段中获取playedDuration

@Override public void onActivityCreated(final Bundle savedInstanceState) super.onActivityCreated(savedInstanceState); this.playDuration = getArguments().getLong("playedDuration"); initializeViews(); //get video URI...

    在片段的 clickListener 中:使用 FragmentManager 添加完整尺寸的视频片段并传递播放时长。

    在新的全尺寸片段中寻找给定的playedDuration并播放视频。

【讨论】:

以上是关于android webview怎样点击按钮全屏播放的主要内容,如果未能解决你的问题,请参考以下文章

webview上的Html5视频缺少棒棒糖上的全屏按钮

如何检测您是不是在android java的webview中点击了youtube播放按钮?

如何让WebView中的Html5 Video全屏播放

Android WebView播放视频(包括全屏播放)

Android WebView播放html5视频,退出全屏后为啥就是黑屏了

Android Webview 应用程序不会让视频播放器全屏显示