【问题标题】:Exoplayer - Avoid video stretchingExoplayer - 避免视频拉伸
【发布时间】:2016-07-31 14:20:28
【问题描述】:

我正在使用 Exoplayer 从 Internet 加载视频。

当视频加载并开始在容器内显示时,视频会自动拉伸,同时在视频渲染器上设置标志 MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT

this._videoRenderer = new MediaCodecVideoTrackRenderer(this._context, source, MediaCodecSelector.DEFAULT, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT);

布局:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/selfie_slider_slide_thumbnail"
        android:layout_gravity="center|center_vertical"
        android:visibility="gone" />

    <SurfaceView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/selfie_slider_slide_video"
        android:layout_gravity="center|center_vertical" />
</LinearLayout>

图像显示正确,但视频显示不正确。下面举两个例子来正确说明问题:

  • 这是容器内的缩略图

  • 这是加载后的视频。你可以看到它被拉伸了(不要注意黑线,这是一个不好的裁剪)

我想我可以根据缩略图大小调整容器的大小,但这意味着每次视频更改时我都需要调整容器的大小,所以我正在尝试找到一种更好的方法来做到这一点。如果有人猜到了,我会接受的!

【问题讨论】:

    标签: android exoplayer


    【解决方案1】:

    您可以使用 Exoplayer AspectRatioFrameLayout 或在以前的版本中使用 AspectRatioTextureView。您需要接收onVideoSizeChanged 事件并更新 TextureView/FrameLayout 比率:

    /**
     * @param width                    video width
     * @param height                   video width
     * @param unappliedRotationDegrees ?
     * @param pixelRatio               (optional) pixel ratio
     */
    @Override
    public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, float pixelRatio) {
        if (!mRatioAlreadyCalculated && mVideoWidthHeightRatio != (float) width / height) {
            mVideoWidthHeightRatio = ((float) width / height) * pixelRatio;
            mRatioAlreadyCalculated = true;
        }
        updateVideoRatio();
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-15
    • 2011-09-06
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2011-02-22
    相关资源
    最近更新 更多