在全屏模式下,在更高分辨率的设备上播放小分辨率视频

时间:2013-04-19 08:31:08

标签: android video fullscreen adt stretch

我在全屏VideoView中嵌套了480x360 mp4视频。我想要的是在全屏幕上以更高分辨率的物理设备播放它。我不介意通过将视频拉伸到设备屏幕的尺寸来扭曲视频。我只想要全屏

我的Java代码是:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
       getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

       VideoView vv = (VideoView) findViewById(R.id.videoView);


       vv.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                mp.setLooping(true);
            }
        });


       Uri url=Uri.parse("android.resource://" + getPackageName() +"/"+ R.raw.bubblessd );

       vv.setVideoURI(url);
       vv.start();
       vv.requestFocus();

    }
}

我的活动XML是这样的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"

    tools:context=".MainActivity" >

<VideoView
    android:id="@+id/videoView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"/>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

  • 如果您使用VideoView,在这种情况下,保持宽高比的更好解决方案是修复黑色背景和cropCenter您的videoView。你可以适应你的视频,但它会失去原有的宽高比。 请查看此链接:[http://blog.gemserk.com/2013/01/22/our-solution-to-handle-multiple-screen-sizes-in-android-part-one/][1]
  • 如果您使用SurfaceView(对我来说是最佳选择),您可以使用以下方法:

    yourSurfaceVideo.setVideoScalingMode(MediaPlayer.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);

让您的视频适应您想要的空间。希望它有所帮助!