1

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>

コードから、フルスクリーンをサーフェスビューに設定しています

    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 フルスクリーン ビデオを再生するにはどうすればよいですか?

4

3 に答える 3

5

これが何歳かわからない..これを試してみてください

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

アクティビティのonCreateメソッドでsetContentViewを実行する前に

于 2012-05-24T10:41:16.197 に答える
2

試す

  mPreview = (SurfaceView) findViewById(R.id.surface);
  LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

    mPreview.setLayoutParams(lp);
    holder = mPreview.getHolder();
    holder.addCallback(this);
    holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    holder.setSizeFromLayout();
于 2012-04-30T06:43:59.267 に答える
0

これを試していただけますか。

            mPreview = (SurfaceView) findViewById(R.id.surface);
            holder = mPreview.getHolder();
            holder.addCallback(this);

oncreateで幅と高さをまったく設定しないでください...

于 2012-04-30T06:06:51.233 に答える