如何在Android"中创建像youtube"小屏幕和全屏播放的视频视频

时间:2013-09-12 10:01:50

标签: android android-layout media-player android-video-player

我想开发像Youtube这样的活动或片段。

“当用户从列表中点击视频时,它开始在小视频视图中播放,如高度= 200dp和宽度= 300dp(例如),我想在MediaPlayer控制器上显示全屏按钮,用户可以完全播放相同的视频屏幕效果视频播放。

此外,我想显示相关的videoList和当前播放视频的评论所以我应该使用片段?如果是,任何示例示例。

我在google上搜索关于这种类型的视频播放但是我找不到它...有一些答案就像在高度和宽度上使用填充父...但我不想直接显示全屏。< / p>

我希望以小尺寸和全屏尺寸显示视频。我怎样才能做到这一点 在图像中,您可以在视频控制器中看到我想要的全屏按钮。

感谢任何帮助

谢谢enter image description here

2 个答案:

答案 0 :(得分:4)

尝试创建小视频表面或视频视图,并可以通过显示矩阵

更改视图参数
  DisplayMetrics displaymetrics = new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
  int height = displaymetrics.heightPixels;
  int width = displaymetrics.widthPixels;

  android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
  params.width = width;
  params.height=height-80;// -80 for android controls
  params.setMargins(0, 0, 0, 50);

因此,要执行此代码,您可以创建自己的自定义媒体控制器,也可以通过扩展媒体控制器来使用set anchor。

1)这是Custom media controller链接 Custom media controller

2)扩展媒体控制器并设置锚标签  set anchor tag

  public void setAnchorView(final View view) {
super.setAnchorView(view);

Button fullScreen = new Button(context);
fullScreen.setText("FullScreen");
Log.e("media controller","Set anchorView");
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(view.getWidth(), 0, 5, 20);
params.gravity =  Gravity.RIGHT;
addView(fullScreen, params);

fullScreen.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Log.e("media controller","full screen onclick");

        Intent i = new Intent("xyxyxyxhx");

        context.sendBroadcast(i);

    }
});
    }

答案 1 :(得分:2)

你必须在新的java类中override setAnchorView扩展Android的MediaController(android.widget.MediaController)并向控制器添加额外的视图/按钮。并做这样的事情

@Override 
 public void setAnchorView(View view) {
 super.setAnchorView(view);

 Button fullScreen = new Button(context);
 fullScreen.setText("FullScreen");
 FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
 params.gravity =  Gravity.RIGHT|Gravity.TOP;
 addView(fullScreen, params);
}

现在添加clicklister以查看