surfaceview黑屏(microsoft surface 黑屏)

http://www.itjxue.com  2023-01-28 03:41  来源:未知  点击次数: 

android ViewPager 嵌套SurfaceView切换时卡顿黑屏怎么处理

手机黑屏算是手机维修中经常容易遇到的故障之一,通常黑屏可以分两种:一种是使用中黑屏,一种是待机黑屏。这里就说说引起黑屏的一些基本原因及解决方法。

使用中黑屏大都是由自己下载的第三方软件引起的,本机自带的鲜少会出现这种情况。也可以细分为两种:一种是此软件本身就有问题,软件自身不稳定啊,或者跟手机系统不匹配之类的,这个很好解决,卸载即可;二种就是软件跟软件之间起冲突,这个解决稍微麻烦点,需要一个软件一个软件安装跟卸载实验下到底是那个软件的问题.找到了就将其卸载,问题基本就能解决。

待机中黑屏,说先说说待机原理,直板机因为大多都有一个省电电路设计:手机长时间检测不到按键触发信号就会自动关闭屏幕,也就是待机,当你需要使用手机了一按键就会激活省电电路,然后屏目点亮。

黑屏的原因往往就是屏幕触发电路延迟反映了.也就是说手机系统已经发出点亮屏幕的指令了但由于电路延迟了没发送成功结果屏幕就没点亮成功,但手机系统以为已经点亮了,所以就造成了黑屏。

Fragment中包含有surfaceView,点击切换Fragment时候黑屏的解决办法

SurfaceView因为不同于一般的view,它有自己良好的缓冲以及数据存取机制,系统对他有特殊处理。当surfaceview第一次在当前activity上添加的时候,系统会给WindowManager重新排布局,relayout,这样就会黑一下,这个只会出现在第一次,以后再添加surfaceview时就不会黑屏了。

 或者在xml文件中添加: 

surfaceview切换出现短暂黑屏怎么解决

SurfaceView

android:id="@+id/preview_view"

android:layout_width="0dp"

android:layout_height="0dp"

android:layout_gravity="center"/

把这个放在第一个页面

安卓视频播放(阿里云视频点播播放器SDK+SurfaceView)

本篇文章讲述使用阿里云视频视频播放sdk中的高级播放器加上SurfaceView实现,采用id+STS方法进行视频播放。

流程:用户App获取STS凭证 - 服务端下发STS凭证 - 用户上传视频并获取vid - 服务端获取STS凭证 - 将STS凭证下发给客户端 - 完成视频播放。

请看阿里云文档=========》》》》》》 阿里云-高级播放器Android使用说明

接下来我们来看一下安卓给我们提供的手势控制类

接口

setOnTouchListener(this);

其中定义了四种状态 NONE = 0, VOLUME = 1, BRIGHTNESS = 2, FF_REW = 3;

接下来我们来看一下我们自定义的SurfaceViewOnGestureListener继承 GestureDetector.SimpleOnGestureListener主要用到了

onDown(MotionEvent e)

onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)两个方法

a.在onDown的时候把状态设置NONE

b.判断横向滑动的距离大于纵向滑动的距离,就把模式赋值为快进和后退

c.在onScroll中进行状态赋值,根据滑动的距离,如果按下的点在屏幕的左半部分就吧状态设置为调节亮度BRIGHTNESS,如果在右半部分就是调节音量

d.各种情况调用各自的接口方法

快进和后退,我们需要知道的就是我们滑动的距离如何与视频的长度关联起来。

那么咱们就可以把视频的总长度与屏幕的总长度相比,这样就能知道你手指滑动的距离占视频的多少了。

我们可以通过 l = duration / mySurfaceView.getWidth();来获得这个比例,然后用当前的进度加上指滑动的距离占视频的长度就是要播放的视频位置

抬起点的x坐标与按下点的X坐标所得的距离,大于0是快进,小于零是后退。

系统的音量有很多,包括通话音量值,系统铃声值,音乐音量值,闹铃音量值,等等吧。

做一下笔记以备以后用到

视频播放我们用的是音乐音量值,同样的道理,我们需要把音量和高度进行关联,我们可以控件的高度闭上最大音量得出比例后就可以知道你滑动的距离占音量的多少了。

这里有个注意点就是activity是当前的这个界面,设置的是当前的界面,离开这个界面后就不管用了。

相同的道理和滑动调节音量一样也是获得屏幕的高度比上最大的亮度,然后计算滑动的距离转换成亮度是多少。(这里不多讲了)

为什么会出现黑屏,就是按Home键再点App回来后,只有声音没有图片的问题,因为我们用的是SurfaceView,每次点击Home键时会销毁这个SurfaceView,再回来时又会重新创建,这样我们的阿里云播放器与SurfaceView就没有绑定了,画面就没有了。

这样我们需要 给surfaceView添加mySurfaceView.getHolder().addCallback(this);

我们在按home键的时候会走surfaceDestroyed。这样,我们就可以在这里做一个标识,让他暂停,然后再回来的时候就会走surfaceCreated,判断标识,然后进行处理就可以了。切记一定要重新让aliyunVodPlayer与SurfaceView进行关联,这样才能有画面也有声音。

由于我们的视频在阿里云的服务器上存着,访问阿里云的服务器需要临时凭证,我们通过STS来获取Token,但是这个Token是有时间限制,正好阿里云的播放器给我们提供了播放视频出错时候的回调接口,我们只需要在这里面进行重新请求Token就可以了

SurfaceView切换的时候会闪一下黑屏,怎么解决

尊敬的联想用户您好!

根据您反馈的情况,您可以参考以下方法进行调试:

1.在桌面单击右键,选中屏幕分辨率,选中高级设置。这是电脑的刷频率。把两者设为一致都为60HZ或50HZ。

2.调整电源的刷新率。找到右下角电源,用鼠标右击,选中电源选项,找到更改计划设置,找到更改高级电源设置,找到Intrl(R)

Graphics

set亥定忿剐莜溉冯税辅粳tings点击展开。如果你第一步选的是60HZ,把Intrl(R)

Graphics

settings使用电池和接通电源都设置为Maximum

Performance.如果你第一步选的是50HZ,把Intrl(R)

Graphics

settings使用电池和接通电源都设置为Minimum

Performance。

期待您满意的评价,感谢您对联想的支持,祝您生活愉快!

(责任编辑:IT教学网)

更多

推荐网页制作视频教程文章