避免 VideoView 中的视频拉伸
Posted
技术标签:
【中文标题】避免 VideoView 中的视频拉伸【英文标题】:Avoiding video stretching in a VideoView 【发布时间】:2018-02-15 21:18:34 【问题描述】:我在使用 VideoView 时遇到了一个奇怪的问题。
使用一些 .mp4(使用 ffmpeg 编码)视频我遇到了这个问题:
视频被拉伸以覆盖所有屏幕宽度。
但是使用使用不同软件编码的 .mp4 视频(我不记得了) 结果是:
保留纵横比。
这是我的布局 XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<ScrollView
android:layout_
android:layout_
android:id="@+id/allenamento_activity">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<VideoView
android:id="@+id/videoView"
android:layout_
android:layout_
android:layout_marginTop="2dp"
android:layout_gravity="center">
</VideoView>
<---- OTHER XML CODE ------>
</LinearLayout>
</ScrollView>
</RelativeLayout>
如何防止视频拉伸?
【问题讨论】:
VideoView to match parent height and keep aspect ratio的可能重复 @BertoGT 有什么解决方案吗? 【参考方案1】:滚动视图和所有子视图都设置为:
android:layout_
这意味着所有子元素的宽度都将与屏幕/主布局相同。
您要么需要计算所需的高度/宽度,要么将内容包装在宽度和高度上。
onMeasure 方法可能在这里有用吗?
【讨论】:
在网络上搜索时,我尝试使用Relative Layout
作为 VideoView 的容器,我尝试计算保持纵横比所需的宽度,但没有结果...以上是关于避免 VideoView 中的视频拉伸的主要内容,如果未能解决你的问题,请参考以下文章
TextureView/SurfaceView/GLSurfaceView/VideoView渲染视频(点播播放器)