【发布时间】:2012-04-30 05:40:40
【问题描述】:
我正在使用 surfaceview 播放本地 mp4 视频,这里是布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SurfaceView
android:id="@+id/surface"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</SurfaceView>
</FrameLayout>
从代码中我将全屏设置为surfaceview
int height = getWindowManager().getDefaultDisplay().getHeight(); //metrics.heightPixels;
int width = getWindowManager().getDefaultDisplay().getHeight(); //metrics.widthPixels;
mPreview = (SurfaceView) findViewById(R.id.surface);
LayoutParams lp = new FrameLayout.LayoutParams(width, height);
mPreview.setLayoutParams(lp);
holder = mPreview.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
//holder.setFixedSize(width, height);
holder.setSizeFromLayout();
但是,现在的问题是视频没有全屏播放,视频上方出现黑屏。
截图http://i.imgur.com/WNFDM.png 如何播放全屏视频?
【问题讨论】:
-
您能告诉我为什么要动态设置大小...您已经在 xml 布局中设置了正确的参数。在您的 oncreate 函数中,如果您将设置全屏标志,那么它将自动将您的布局设置为全屏,而无需在运行时设置大小。我认为有一些与宽度和高度有关的问题。您可以尝试仅设置全屏标志吗?
-
感谢您的 cmets,但设置标志无效。
-
它没有全屏或视频没有开始播放。
-
我不知道这是错误的还是故意的,但是您将宽度分配为使用的高度 int width = getWindowManager().getDefaultDisplay().getHeight();
-
等一下,我给你截图。
标签: android video surfaceview