我不知道如果我能得到一个方法,让视频运行通过videoview全屏?
我搜索了很多,试了很多办法,如:
应用主题清单:
安卓主题=@安卓风格/ Theme.NoTitleBar.Fullscreen
但是,这并不强制视频是在全屏显示。
应用在活动本身:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
也不会强制视频是在全屏显示。
只有这样,力视频全屏是:
< VideoView机器人:ID =@ + ID / myvideoview
机器人:layout_width =FILL_PARENT
机器人:layout_alignParentRight =真
机器人:layout_alignParentLeft =真
机器人:layout_alignParentTop =真
机器人:layout_alignParentBottom =真
机器人:layout_height =FILL_PARENT>
< / VideoView>
此方式,导致全屏幕视频,但它的绵延视频本身(拉长视频),
我不将这种不正当的解决方案,我videoview,那么有没有什么办法可以做到这一点不拉伸视频?
视频类:
公共类视频延伸活动{
私人VideoView myvid;
@覆盖
公共无效的onCreate(包冰柱){
super.onCreate(冰柱);
的setContentView(R.layout.main);
myvid =(VideoView)findViewById(R.id.myvideoview);
myvid.setVideoURI(Uri.parse(android.resource://+ getPackageName()
+/+ R.raw.video_1));
myvid.setMediaController(新的MediaController(本));
myvid.requestFocus();
myvid.start();
}
}
main.xml中:
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直>
< VideoView
机器人:ID =@ + ID / myvideoview
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT/>
< / LinearLayout中>
解决方案
这样你可以自己设置视频的属性。
使用一个SurfaceView(给你的看法更多的控制),将其设置为FILL_PARENT匹配整个屏幕
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:方向=垂直
机器人:layout_width =match_parent
机器人:layout_height =FILL_PARENT>
< SurfaceView
机器人:ID =@ + ID / surfaceViewFrame
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:layout_gravity =中心>
< / SurfaceView>
< / LinearLayout中>
然后在你的java code得到表面观和媒体播放器添加到它
surfaceViewFrame =(SurfaceView)findViewById(R.id.surfaceViewFrame);
球员=新的MediaPlayer();
player.setDisplay(保持器);
设置在媒体播放器上的preparedListener和手动计算视频所需的大小,以填满屏幕所需的比例,避免拉伸视频!
player.setOn preparedListener(新在preparedListener(){
@覆盖
公共无效于prepared(MediaPlayer的MP){
//调整视频的大小
//所以它在屏幕上适合
INT videoWidth = player.getVideoWidth();
INT videoHeight = player.getVideoHeight();
浮动videoProportion =(浮点)videoWidth /(浮点)videoHeight;
INT屏幕宽度= getWindowManager()getDefaultDisplay()的getWidth()。
。INT screenHeight = getWindowManager()getDefaultDisplay()的getHeight();
浮动screenProportion =(浮点)屏幕宽度/(浮点)screenHeight;
android.view.ViewGroup.LayoutParams LP = surfaceViewFrame.getLayoutParams();
如果(videoProportion> screenProportion){
lp.width =屏幕宽度;
lp.height =(INT)((浮点)屏幕宽度/ videoProportion);
} 其他 {
lp.width =(INT)(videoProportion *(浮点)screenHeight);
lp.height = screenHeight;
}
surfaceViewFrame.setLayoutParams(LP);
如果(!player.isPlaying()){
player.start();
}
}
});
我修改这从一个教程视频流,我跟着前一段时间,找不到它现在引用它,如果有人不请链接添加到答案!
希望它能帮助!
修改
好了,所以,如果你想要的视频占据整个屏幕,你不希望它伸展你将结束与黑色条纹的两侧。在code我发布我们发现了什么越大,视频或手机屏幕,配合它的最佳方式,我们可以。
有你有我的完整活动中,链接的流媒体视频。这是100%的功能。我不能告诉你如何从自己的设备上播放的视频,因为我不知道。我敢肯定,你会发现它在文档这里或