【问题标题】:Android media player set video scaling modeAndroid媒体播放器设置视频缩放模式
【发布时间】:2017-10-12 18:24:08
【问题描述】:

我用:

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

但它不工作我想把视频放到屏幕上。

【问题讨论】:

  • 你找到答案了吗?

标签: android video scale stretch


【解决方案1】:

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
    }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
相关资源
最近更新 更多