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

Posted

技术标签:

【中文标题】如何通过单击 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 中的按钮使 VideoView 全屏显示?的主要内容,如果未能解决你的问题,请参考以下文章

通过单击android studio中的按钮将我的当前位置发送给所有用户

单击按钮后如何使具有不可见属性“可见”的视图

如何通过单击 EditText 中的按钮逐个添加数字?

如何使按钮单击更新数据库并重定向到 Django 中的视图?

如何通过单击一个简单的按钮在 android 中显示日历

通过单击 Android Studio 中的按钮在 webview 中获取随机 Youtube 视频