Android媒体播放器设置视频缩放模式

时间:2014-12-03 15:01:03

标签: android video scale stretch

我用:

 mediaPlayer.setVideoScalingMode(android.media.MediaPlayer.VIDEO_SCALING_MODE_SCALE_TO_FIT);

但它不起作用我想将视频放到屏幕上。

1 个答案:

答案 0 :(得分:2)

默认情况下,

VIDEO_SCALING_MODE_SCALE_TO_FIT是值,因此请调用

mediaPlayer.setVideoScalingMode(android.media.MediaPlayer
                                .VIDEO_SCALING_MODE_SCALE_TO_FIT);

没有任何区别。

http://developer.android.com/reference/android/media/MediaCodec.html#setVideoScalingMode(int)

  

默认为“缩放以适合”。

例如,抓住以下基于MediaCodec的播放器:

https://github.com/google/ExoPlayer

并在MediaCodecVideoTrackRenderer.java中设置VIDEO_SCALING_MODE_SCALE_TO_FITVIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING进行实验


再添加一点。

您要完成的任务可以通过以下方式完成:

在SurfaceView上实现onMeasure。

获取视频尺寸。

使用不同的值调用setMeasuredDimension,具体取决于您是否要拉伸,调整或裁剪视频:

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int width = getDefaultSize(videoWidth, widthMeasureSpec);
        int height = getDefaultSize(videoHeight, heightMeasureSpec);

        // Do not change w & h for screen fill
        setMeasuredDimension(width, height);

        // Experiment by changing width & height compared to the video size
        // for different results
    }