首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VideoView只有在我旋转屏幕时才起作用

VideoView是Android平台上的一个视图控件,用于播放视频文件。它可以在界面中显示视频内容,并提供了一些常用的视频控制功能,如播放、暂停、停止、快进、快退等。

VideoView只有在旋转屏幕时才起作用的原因可能是由于屏幕旋转导致Activity重新创建,而在Activity重新创建时,需要重新设置VideoView的相关属性和状态才能正常播放视频。

为了解决这个问题,可以在Activity的生命周期方法中保存和恢复VideoView的状态。具体做法如下:

  1. 在Activity的onSaveInstanceState方法中保存VideoView的状态。可以通过调用VideoView的getCurrentPosition方法获取当前播放位置,并将其保存到Bundle对象中。
  2. 在Activity的onCreate方法或onRestoreInstanceState方法中恢复VideoView的状态。可以通过调用Bundle对象的getInt方法获取之前保存的播放位置,并调用VideoView的seekTo方法将播放位置设置为恢复的位置。

另外,为了确保VideoView在旋转屏幕时能够正确工作,还可以考虑以下几点:

  1. 在AndroidManifest.xml文件中为Activity添加配置属性android:configChanges="orientation",以告知系统在屏幕旋转时不重新创建Activity。
  2. 在Activity的onConfigurationChanged方法中处理屏幕旋转事件。可以在该方法中重新设置VideoView的布局参数,以适应新的屏幕方向。

总结起来,要解决VideoView只有在旋转屏幕时才起作用的问题,需要保存和恢复VideoView的状态,并在屏幕旋转时处理相关事件。同时,为了提供更好的用户体验,还可以考虑添加屏幕旋转配置和处理屏幕旋转事件的逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android弹幕功能实现,模仿斗鱼直播的弹幕效果

而现在新书已经完稿,剩下的事情就都是出版社的工作了,那么我又可以抽出时间来写写博客了。 记得之前有位朋友在我的公众号里问过我,像直播的那种弹幕功能该如何实现?...弹幕的View必须要做成完全透明的,这样即使覆盖在游戏界面的上方也不会影响到游戏的正常观看,只有当有人发弹幕消息时,再将消息绘制到弹幕的View上面就可以了。原理示意图如下所示: ?...当然,我事先已经在SD的根目录中准备了一个叫Pixels.mp4的视频文件。...虽说DanmakuView已经在正常工作了,但是屏幕上没有任何弹幕信息的话我们也看不出效果,因此我们还要增加一个添加弹幕消息的功能。...注意我们一开始是将LinearLayout隐藏的,因为不能让这个操作界面一直遮挡着VideoView,只有用户想要发弹幕的时候才应该将它显示出来。

4.4K90

安卓基础干货(十):安卓多媒体编程的学习

RGB ARGB 32 应用程序在启动时系统为它创建一个进程,系统为每个进程创建dalvik虚拟机(模拟器设置的VM Heap),当图片的大小大于虚拟机的堆内存空间时,就内存溢出(内存泄露);...解决办法:缩放图片加载到内存 步骤: 1、获得设备屏幕的分辨率; 2、得到原图的分辨率; 3、通过比较得到一个合适的比例值; 4、按照比例值缩放图片 5、把图片显示在imageview 缩放图片并加载到内存中...解决办法: 缩放图片加载到内存 步骤: 1、获得设备屏幕的分辨率; 2、得到原图的分辨率; 3、通过比较得到一个合适的比例值; 4、按照比例值缩放图片 5、把图片显示在imageview...canvas.drawBitmap(srcPic, new Matrix(), paint); iv.setImageBitmap(copyPic); } } 计算机图形处理的API(重点) * 旋转...当界面不可见时,双缓冲器占用释放。

1.5K10
  • Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)

    另外,因为Android本身的MediaPlaer和VideoView自身就处理好所以不需要你旋转。...例如根据视频的长宽比和屏幕的长宽比判断,如果视频宽与屏幕宽之比小于高之比,那么就需要按理比压缩宽度,然后高度适应屏幕。  ...例如根据旋转信息,判断TextureView界面的比例是横的还是竖的,如果View是竖的,而视频也是竖的,那么因为旋转了90度,那么让视频的高显示为屏幕的宽度,从新计算旋转后的宽度。...这里需要个关注的是手动点击和自动旋转之间的冲突,主要看代码吧,老婆开始催我了 (ノಠ益ಠ)ノ彡┻━┻。...如果横屏全屏的话,恢复到正常画面是最好有一个延时,这样画面才不会出现背景抖动的问题,还有最关键的,Maifest文件。

    3K90

    Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)

    另外,因为Android本身的MediaPlaer和VideoView自身就处理好所以不需要你旋转。...例如根据视频的长宽比和屏幕的长宽比判断,如果视频宽与屏幕宽之比小于高之比,那么就需要按理比压缩宽度,然后高度适应屏幕。...例如根据旋转信息,判断TextureView界面的比例是横的还是竖的,如果View是竖的,而视频也是竖的,那么因为旋转了90度,那么让视频的高显示为屏幕的宽度,从新计算旋转后的宽度。...这里需要个关注的是手动点击和自动旋转之间的冲突,主要看代码吧,老婆开始催我了 (ノಠ益ಠ)ノ彡┻━┻。...6、如果横屏全屏的话,恢复到正常画面是最好有一个延时,这样画面才不会出现背景抖动的问题,还有最关键的,Maifest文件。

    2.7K30

    Android开发之使用VideoView实现视频的横屏播放、去除边框

    做项目需要播放一个引导视频,本以为很简单,结果动手时发现总有瑕疵,幸好有度娘,现把收获总结如下: 一、实现视频播放: 注明我这里要播放的是Android项目中的资源文件,而不是访问SD卡播放视频。...我们需要在布局文件中的VideoView组件外包裹一个布局,我这里用的是RelativeLayout,,其他的应该也可以: <RelativeLayout android:layout_width...如何让视频在播放时就自动转到横屏播放呢?...三、设置视频横屏播放: 每个Activity是否允许转屏,当前显示方式是横屏还是竖屏,都可以通过在AndroidManifest.xml文件中设置: 比如我当前播放视频时在Splash这个activity...中播放,就可以在她的标签中添加screenOrientation属性控制屏幕方向(landscape是横向,portrait是纵向): <activity android:name

    1.4K20

    android视频系列:视频解码篇--android上视频播放的实现

    视频文件,只有播放出来,才显示出了意义;只有播放出来,才暴露出各种问题。先理解播放的场景,才能更好地理解视频处理时所选取的策略。...播放器做了什么 播放器播放视频,就是一步步剖开视频的内容,显示在屏幕上。 最简单的理解方式,是把视频文件看做一个容纳了很多图片的容器。...播放时,从容器里取出一张图片,放到屏幕上显示,隔一点时间后,再从容器里取出下一张图,放到屏幕上。按次序把图片一张一张显示到屏幕上,等到最后一张也显示到屏幕上后,播放就完成了。...Android播放视频 下面我们介绍3种在Android上播放视频的方法。 1. 使用VideoView播放视频 ?...VideoView把解码和显示工作全部都封装起来,简单地设置视频路径,就可以进行播放了。 在显示方面,它就是一个View,可以在代码里创建,也可以在layout xml里直接定义。

    4.1K131

    Android开发笔记(一百二十五)自定义视频播放器

    但是不积跬步无以至千里,如果我们要定制一个好用好看的播放器,还是得先把笨拙的VideoView与MediaController搞清楚才行。...当该方法返回值与getDuration相等时,表示播放到了末尾。 isPlaying : 判断是否在播放。 getBufferPercentage : 获得已缓冲的比例。...返回值在0到1之间。 MediaController VideoView看起来只有光秃秃的视频画面,要想让用户与它进行交互,还得通过MediaController来中转控制操作。...如果只是修改代码,其实还不能完全实现自动全屏的功能,主要问题如下: 1、屏幕顶部的系统状态栏依然留在屏幕顶端; 2、App自身的导航栏也仍旧没有隐藏; 3、在视频播放途中,如果手机屏幕发生切换,例如从竖屏变为横屏...而属性configChanges的意思是屏幕切换时不用重启Activity,只需调用onConfigurationChanged方法来重新设定显示方式,所以给该属性指定若干事件,就可以避免重启Activity

    2.8K40

    Android 拍摄(横竖屏)视频的懒人之路

    如果是不充满屏幕高度的,就通过屏幕宽度比例算出surface的高度;如果充满屏幕高度,就算出surface的宽度。...如此以来,不变形啦,在点击录制的瞬间也不跳动啦,唯一有点小问题的就是充满高度的时候,画面是超过了屏幕宽度的一点的,所以可能录到了什么不想录制的♂,但是刚好没看到︿( ̄︶ ̄)︿。...我们是在画面旋转的时候把对应的logo用属性动画也旋转了,然后得到当前的旋转角度,告诉MediaRecorder,拍摄出来的视频元信息里就带有了角度信息,播放的时候画面会就旋转为横屏或者竖屏啦。...(砸手机)最后解决的是在配置的时候标志类型,设置好MediaRecorder之后拍摄才开始闪光灯。...此处还需要注意,如果应用没有获取到录音权限,在录制的时候是会走catch里面的。 停止录制相对就简单了,只要顺序正常即可,之后就可以把视频传到VideoView快速实现预览啦。

    2K30

    TRTC 视频旋转场景方案

    效果演示 当左边手机进行旋转时,即进行横屏推流,右边手机的小画面订阅到的远端流,动态调整view进行适配,避免出现黑边; 当两端手机都进行旋转时,两端都进行横屏推流,各自订阅的远端流画面进行动态调整.../** * 在指定旋转角度,是否已经操作了,避免连续在同一个旋转角度操作多次 * @param mOrientation 0、90、180、270度 * @return true: 之前一次已经操作过了...就设置横屏的编码参数 * 2)发送 SEI 消息 * 1.1)如果当前是横屏推流,就告诉房间内其他人,我当前在推横屏 * 1.1.1)房间内其他用户收到后,调整对应用户的 view...的宽高比,避免出现黑边 * 1.2)如果当前是竖屏推流,就告诉房间内其他人,我当前在推竖屏 * 1.1.1)房间内其他用户收到后,调整对应用户的 view 的宽高比,避免出现黑边...* 3)旋转远端用户的画面 * 3.1)我当前拉取到了其他人的流,我当前切换成 横屏/竖屏 ,需要旋转远端用户的画面,避免方向不一致 * 4)设置当前 activity 横屏 或 竖屏

    1.8K60

    Android中的Matrix(矩阵)

    中,使用一个3×1的矩阵来表示一个点: x,y分别代表x,y轴上的坐标,而1代表屏幕在z轴上的坐标为默认的。...: Matrix的组合 应用矩阵进行图形变换的主要原因,是因为矩阵是可以通过矩阵的乘法进行组合使用的,如果想对canvas绘制的bitmap时,先平移T(dx, dy),再旋转R(θ),最后缩放S...Matrix的坐标系 矩阵的操作可以看作是以坐标原点为原点的坐标系在三维空间中做的变换,不同于canvas的屏幕坐标系坐标系,矩阵Matrix的坐标系为左手坐标系: 这个坐标系对应的每个轴的旋转方向(...从原点看出去,每个轴的旋转方向都是逆时针): Matrix的操作可以看做是对上面左手坐标系的变换 因为Matrix变换后是对每个canvas的点起作用,其实也可以看做对这个三维坐标系起了作用,canvas...比如:图形变换是以左边原点为原点的,所以旋转、缩放等功能应用到canvas.drawBitmap()方法时(因为bitmap常从原点往右下方画),图像表现出来的结果就特别奇怪,需要将canvas的坐标系移动到图像的中心点再操作然后再把坐标系移回去

    1.7K10

    什么C3转换还可以这样玩???用CSS3实现2D转换、3D转换、3D呈现,详细总结及案例演示。

    语法: transform: rotate(旋转度数); rotate里面写旋转的度数,单位是deg(度),例如rotate(90deg); 当旋转角度为正值时,旋转方向为顺时针旋转;当旋转角度为负值时...默认的旋转中心点时元素的中心点 如下代码的效果为:当鼠标悬停在图片上时,图片会顺时针旋转360°,为了更具有动画效果,添加了过渡效果。...当然没有,你想,我们在3d世界中都有一种直观感受近大远小,那么我们既然是3d移动,那肯定要有这种感觉才行啊,因此,我们引入了一个概念,叫透视-perspective。...透视我们也称为视距 :视距就是人的眼睛到屏幕的距离 透视的单位是像素 透视写在被观察元素的父盒子上面的 还是上面的例子,我现在给div的父元素加上透视,因为我body里面只有div,所以div的父元素就是...【3D呈现(transfrom-style)】 有时我们使用多个对象进行旋转的时候,发现一个奇怪的现象,明明设置了旋转,但旋转的时候,子元素的旋转属性却消失了,不起作用,这是应为我们没有设置3D呈现(transfrom-style

    84030

    Pinterest:Android系统上的视频管理

    包括支持在每个屏幕上同时播放多个视频,并且通过滚动出屏幕自动暂停播放的方式来动态地控制视频的播放状态以及同时播放的视频数量。...在视频框架的第一个迭代中,我们依靠客户端代码本身调用这些调用,但是我们发现这是不可扩展的。因为它在构建视频功能时增加了更多的复杂性。...由于它现在才可以“开箱即用”地工作,因此消除了观众对视频记录过程已经具有预定义知识的需求。...同时这个方法还提供了基于在视频记录时传递的某些元数据属性动态更改之类其他功能的灵活性。 例如,我们可能希望所有视频广告都自动播放,但仅限于在同一片段上自动播放1个有机视频(即创作者生成的内容)。...),以推断其在屏幕上的可见性。

    1.1K60

    《移动互联网技术》第九章 感知与多媒体: 了解质感设计的基本原则和设计方法

    虚拟传感器根据物理传感器采集的数据,通过融合算法计算出各种特性,比如:旋转矢量、重力、线性加速度等等。手机上的计步器也是一种虚拟传感器,它可以根据加速度计计算步数。...传感器的数据采集有不同的方式:第一、可以持续不断的采集数据,通常实时的连续获取数据常用于加速度计、陀螺仪等传感器;第二、在一段时间内,当传感器数据发生变化时采集数据,比如:心率计和计步器;第三、当传感器检测到某种特定事件时...(2)使用VideoView控件来播放视频。在布局文件中设置VideoView控件,然后编写视频播放控制函数来控制播放。...在界面上,菜单选项不显示在主屏幕上,而是通过滑动的方式将隐藏的菜单显示出来。滑动菜单只在需要的时候显示,节省了屏幕空间。实现滑动菜单需要用到DrawerLayout布局。...在设置侧边菜单时,要注意设置控件的layout_gravity属性,也就是必须告诉DrawerLayout滑动菜单是在屏幕的左边还是右边,指定left表示在左边,指定right表示在右边,如果指定了start

    11810

    腾讯云点播 SDK 集成接入之踩坑&填坑记

    但是,当你点击右下角的全屏播放按钮时,你会发现:屏幕时横过来了,但是视频并不是全屏播放的。 这又是为什么?文档啥都没说啊(再次吐槽文档 -_-!)。 鲁迅说过:没有什么是阅读源码不能解决的!...那么实现全屏播放其实就很简单了,将屏幕旋转,然后把 TXCloudVideoView FullScreenPlayer 设置为满屏,并隐藏 WindowPlayer、 FloatPlayer,就可以实现全屏播放了...设置整个 SuperPlayerView 为满屏 将屏幕旋转为横屏 通过这5个步骤,确实可以实现横屏,并且全屏播放,那为什么我们点击全屏的时候,实际上只是横屏,而没有全屏呢?...Android 系统在 Activity 页面发生旋转是,默认会销毁和重新创建页面。 基于这个特点,就不难搞懂为什么了!...Android 提供了一个方式可以达到这个目的,只要在 AndroidManifest.xml 对应的 Activity 添加以下配置,就可以设置页面发生旋转时,不重建。

    3.8K20

    iOS6中横屏的处理方法 原

    现在我们来看决定屏幕方向的几个函数: 在IOS6之前,我们只需通过一个函数 - (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation...之后被标记为过时的 我们通过下面两个方法来代替: //是否允许屏幕旋转 -(BOOL)shouldAutorotate{     return YES; } //支持的方向 - (NSUInteger...注意: 如果你们项目中的RootViewController是导航,你会发现,你在Push出来的视图中添加刚才的代码并没有起作用,原因是导航,并没有进行设置,我们创建一个文件,继承于NavigationController...我们想自由的控制每个push出来的界面的屏幕方向,可以在导航里这么做: -(BOOL)shouldAutorotate{     return [self.topViewController shouldAutorotate...如果我们大多是的视图控制器都是一个方向的,只有偶尔的几个会不同,这时候,我们其实可以采取presentationController的方式,然后直接在弹出的控制器中写那两个方法即可。

    1.1K60

    css笔记 - transform学习笔记(二)

    transform的各个方法属性 name 含义 none 我不定义好不好 translate() 位移 rotate() 旋转 scale() 缩放 skew() 拉伸变形 matrix() 混合,...再者,当数值是大于0的值时,就是放大。当数值在0-1之间的时候,就是缩小。所以 放大还是缩小看的是数值的关系,和正负没有关系。 数值为0就是原来的宽高*0时就看不见了。...另外,计算时不光是乘宽高,内边距padding、边框宽度border-width、甚至外边距margin都跟着升天乘了相应倍数 rotate:N°旋转,正值顺时针旋转,负值逆时针旋转。...模型 同上 16个值,4x4矩阵 perspective 规定3D元素的透视效果 张鑫旭讲解文章 perspective(n) 为3D转换元素设置透视视图 规定3D元素的透视效果 目前浏览器都不支持,只有...x-axis 定义该视图在x轴上的位置、 y-axis 定义该视图在y轴上的位置 perspective-visibility 定义元素在不面对屏幕时是否可见 混合写法 多个属性值之间用逗号隔开即可。

    1.7K10
    领券