gpt4 book ai didi

android - 缩放 VideoView 问题

转载 作者:行者123 更新时间:2023-11-29 00:41:28 25 4
gpt4 key购买 nike

我为这个视频问题苦恼了一段时间。我想你可能有一些想法可以帮助我。

所以我在一个框架布局中有这个 VideoView,在顶部我有一个 ToggleButton 来进行缩放并从缩放返回。

<CustomVideoView
android:id="@+id/video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:keepScreenOn="true" >
</CustomVideoView>

我有一个 480x360 的视频,我想在纵向放大时,我会根据视频比例在屏幕高度和计算出的宽度上调整它的大小。(否则在横向)。

我使用以下方法将 VideoView 扩展为 CustomVideoView:

    public class CustomVideoView extends VideoView {

protected int _overrideWidth = 480;

protected int _overrideHeight = 360;

public CustomVideoView(Context context) {
super(context);
}

public CustomVideoView(Context context, AttributeSet set) {
super(context, set);
}

public void resizeVideo(int width, int height) {
_overrideHeight = height;
_overrideWidth = width;
// not sure whether it is useful or not but safe to do so
getHolder().setFixedSize(width, height);
requestLayout();
invalidate(); // very important, so that onMeasure will be triggered
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(_overrideWidth, _overrideHeight);
}
}

在某些设备上,该技巧可以正常工作,但在带有 4.0.3 的 Google Nexus 上,它会将视频拉伸(stretch)到屏幕上,而在 Galaxy S 2.3.3 上,它根本不起作用。

最佳答案

它可能取决于底层 native 代码,即用于 SurfaceView(以及 VideoView)实现的供应商(在您的情况下为三星)。同样作为 VideoView 的一部分的 MediaPlayer 可以具有特定于设备的实现(也是 native 的),并且它可以影响所有 VideoView 行为。

关于android - 缩放 VideoView 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com