web-dev-qa-db-ja.com

フルスクリーンでのAndroidビデオ表示

私はこのVideoViewを全画面モードで表示しようとしています:

public class ViewVideo extends Activity {
  private String filename;
  private static final int INSERT_ID = Menu.FIRST;

  @Override
  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.gc();
        Intent i = getIntent();
        Bundle extras = i.getExtras();
        filename = extras.getString("videofilename");
        VideoView vv = new VideoView(getApplicationContext());
        setContentView(vv);
        vv.setVideoPath(filename);
        vv.setMediaController(new MediaController(this));
        vv.requestFocus();
        vv.start();
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      super.onCreateOptionsMenu(menu);
      menu.add(0, INSERT_ID, 0,"FullScreen");

      return true;
  }

  @Override
  public boolean onMenuItemSelected(int featureId, MenuItem item) {
      switch(item.getItemId()) {
      case INSERT_ID:
          createNote();
      }
      return true;
  }

  private void createNote() {
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                             WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  }
}

ビデオはSDカードから再生されています。唯一のことは、フルスクリーンメニューボタンをクリックすると、アプリケーションが「突然停止する」ことです。

ビデオをフルスクリーンで実行する方法を教えてください。前もって感謝します。

25
bharathi

メニュー項目をクリックしたとき。新しいアクティビティを開始する必要があります。そのアクティビティについては、マニフェストでテーマ属性を設定する必要があります。この値を設定します

Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"

それでおしまい。

36
Praveen

全画面モードでビデオを再生するためのコードは不要

Videoviewを含むxmlに次のレイアウト形式を適用すると、確実にビデオが全画面モードで再生されます。それは私のものを実行しているように:)

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
           Android:layout_width="fill_parent"
           Android:layout_height="fill_parent" >
   <VideoView Android:id="@+id/myvideoview"
             Android:layout_width="fill_parent"
             Android:layout_alignParentRight="true"
             Android:layout_alignParentLeft="true"
             Android:layout_alignParentTop="true"
             Android:layout_alignParentBottom="true"
             Android:layout_height="fill_parent">
    </VideoView>
 </RelativeLayout>
39
Javanator

おそらく、次のコードを追加する必要があるためです。

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

setContentView(your_content_view)の前に、アプリのタイトルバーを削除します。返信が非常に遅いことは知っていますが、誰かが役に立つかもしれません。

7
samreen

私の経験により、ビデオで縦向きと横向きを引き伸ばすには、相対レイアウトビューしか使用できません。線形レイアウトビューは、Landscapeでのみビデオをストレッチできます。コードを記述せずに2つのビューを試して、私の理論を証明できます

1
Michael

縦向きレイアウト

<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_gravity="center"
    Android:background="@Android:color/black">
    <VideoView
        Android:id="@+id/video_view"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center" />
</FrameLayout>

横向きのレイアウト

<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="@Android:color/black">
    <VideoView
        Android:id="@+id/video_view"
        Android:layout_width="wrap_content"
        Android:layout_height="match_parent"
        Android:layout_gravity="center"/>
</FrameLayout>
0
THZ

オーケー、このように試してみましょう、これは私のフルスクリーンに適していました。

    Android:theme="@Android:style/Theme.Translucent.NoTitleBar.Fullscreen"
0
SAWAUNG