无中断纵横比的全屏视频
Posted
技术标签:
【中文标题】无中断纵横比的全屏视频【英文标题】:Full Screen Video Without Break Aspect Ratio 【发布时间】:2012-09-11 17:43:01 【问题描述】:在我的程序中,我试图全屏播放视频,但不破坏播放视频的宽高比,
在 android 默认播放器中,当您按下它时,它在左上角有一个按钮,它将视频切换到完整视图而不会导致视频失真,保持宽高比:
如下图:
我尝试使用以下代码获取全屏视频:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_ >
<VideoView android:id="@+id/myvideoview"
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_>
</VideoView>
</RelativeLayout>
上面的代码导致全屏视频但是没有保持Aspest Ratio
请任何人建议我如何在不破坏纵横比的情况下获得全屏视频。
我的视频存储在 App 资源文件夹的 raw 文件夹中。
请提供完整的工作代码。
我在这里和谷歌搜索了很多,但我找不到我的目标,
在 *** 中找到了另一个帖子,其中包含相同的问题,但在此链接中没有正确答案:
Full screen videoview without stretching the video.
我使用 videoview 在我的应用中显示我的视频,如下所示:
public class Video extends Activity
private VideoView videoview;
@Override
public void onCreate(Bundle icicle)
super.onCreate(icicle);
setContentView(R.layout.main);
videoview = (VideoView) findViewById(R.id.count_videoview);
videoview.setVideoURI(Uri.parse("android.resource://" + getPackageName()
+"/"+R.raw.first_video));
videoview.setMediaController(new MediaController(this));
videoview.requestFocus();
videoview.start();
提前致谢。
【问题讨论】:
添加similar question的链接,请注意该链接中的奖励答案不起作用。 @yorkw 链接已添加并已更新,请查看,谢谢 从这里查看答案:***.com/questions/8240051/… 试试这个***.com/a/38971707/1153703 【参考方案1】:获取原始视频的高度和宽度。 获取屏幕的高度和宽度(当前方向)。
float ratioWidth = screenWidth / videoWidth;
float ratioHeight = screenHeight / videoHeight;
float fullWidth;
float fullHeight;
if (ratioWidth < ratioHeight )
fullWidth = videoWidth * ratioWidth;
fullHeight = videoHeight * ratioWidth;
else
fullWidth = videoWidth * ratioHeight;
fullHeight = videoHeight * ratioHeight;
将fullWidth
和fullHeight
设置为VideoView
。
【讨论】:
请提供完整的工作代码,我使用videoview类在我的应用程序上显示视频,我不是android专家,谢谢以上是关于无中断纵横比的全屏视频的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3、iOS 10+、xCode 8.3+、Quickblox - 在保持纵横比/视频分辨率的同时切换全屏远程流
MPMoviePlayerController 控件 - 删除全屏和纵横比按钮?