Android: воспроизведение широкоэкранного видео - PullRequest
0 голосов
/ 10 августа 2011

Я разработал приложение для воспроизведения видео .. код для воспроизведения видео здесь ..

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.videoview);
    Intent i = getIntent();
    Bundle extras = i.getExtras();
    filename = extras.getString("videofilename");
    mVideoView = (VideoView)findViewById(R.id.videoview);

    path=filename;
    if (path == "") {
        // Tell the user to provide a media file URL/path.
        Toast.makeText(
                ViewVideo.this,
                "Please edit VideoViewDemo Activity, and set path"
                        + " variable to your media file URL/path",
                Toast.LENGTH_LONG).show();

    } else {

          mVideoView.setVideoPath(path);
          mc = new MediaController(this);
          mVideoView.setMediaController(mc);
          mVideoView.requestFocus();
          mVideoView.bringToFront();
          mVideoView.start();

    }
}

Вот код 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/videoview"
             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>

Проблема в том, что когда япопробуйте воспроизвести широкоэкранное видео 16: 9.Он показывает это в полноэкранном режиме, и символы выглядят сжатыми.Мне нужно играть в широкоэкранном формате с матами (две горизонтальные черные полосы над и под видео). Любые предложения, пожалуйста ??

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Вот связанный вопрос .

Похоже, что вы заставляете видео выравниваться по всем четырем сторонам экрана, используя

android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"

Это отбрасывает соотношение сторон видео. Вместо этого попробуйте поместить его в LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">

    <VideoView android:id="@+id/videoview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

</LinearLayout>
1 голос
/ 10 августа 2011

Попробуйте использовать MediaViewer в вертикальной линейной компоновке.

Примерно так (от макушки моей головы, так что не доверяйте ей безоговорочно):

<LinearLayout android:layout_height="match_parent" 
    android:layout_width="match_parent" android:weightSum="9"
    android:orientation="vertical">
    <VideoView android:layout_height="0dp" android:layout_width="0dp"
        android:layout_weight="6" />
</LinearLayout>

Это должно заполнить 2/3 вертикальной области экрана.

Отрегулируйте WeightSum и layout_weight по желанию.

Надеюсь, это поможет!

...