安卓视频流 - 需要比例调整

5

我正在使用Android MediaPlayer演示视频。 我有流媒体视频640x480。 我只想让视频尽可能大(无论设备方向如何),同时保持纵横比。 但我无法做到这一点。 它只是在整个屏幕上拉伸。 我的布局中的SurfaceView在“fill_parent”或“wrap_content”中都无法保持纵横比。 当我检查时(并更改代码中的表面大小),它似乎忽略了任何更改。 而奇怪的是,我被告知此代码中的视频大小为:176 x 144。

public void onVideoSizeChanged(MediaPlayer mp, int width, int height) 
{
    Log.v(TAG, "onVideoSizeChanged called");
    Log.v(TAG, "Surface Width: " + width + " Surface Height: " + height);
    if (width == 0 || height == 0) {
        Log.e(TAG, "invalid video width(" + width + ") or height(" + height + ")");
        return;
    }
    mIsVideoSizeKnown = true;
    mVideoWidth = width;
    mVideoHeight = height;

    mVideoWidth = mp.getVideoWidth();
    mVideoHeight = mp.getVideoHeight();
    Log.v(TAG, "Surface Width: " + mVideoWidth + " Surface Height: " + mVideoHeight);
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) {
        startVideoPlayback();
    }
}

这是我尝试改变大小的地方:
private void startVideoPlayback() {
    Log.v(TAG, "startVideoPlayback");
    holder.setFixedSize(mVideoWidth, mVideoHeight);
    mMediaPlayer.start();
}

你有什么想法?

1个回答

0
尝试在OnPrepared()中使用setLayoutParams()方法。
public void onPrepared(MediaPlayer mp) {
   ...
   mSurfaceView.setLayoutParams(new LinearLayout.LayoutParams(vWidth, vHeight));
   ...
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接