荣耀畅玩4x 微信运动5微信悬浮视频最小化怎么打开

后使用快捷导航没有帐号?
平板/笔记本
云服务专区
请问Mate S 微信视频时悬浮窗怎么开启?
&略有小成&
来自:浏览器
如题,求大神指导,找了半天找不到!
width:100%">
&已臻大成&
来自:浏览器
楼主你好,在桌面“手机管家”,点击“通知管理”,允许微信显示悬浮窗。是否支持悬浮窗是看该软件是否支持。希望能帮助到你。
width:100%">
&炉火纯青&
来自:浏览器
看看了。。。。
width:100%">
&略有小成&
来自:浏览器
Mr丶nanita 发表于
楼主你好,在桌面“手机管家”,点击“通知管理”,允许微信显示悬浮窗。是否支持悬浮窗是看该软件是否支持 ...
已经成功解决,thanks!
width:100%">
<a class="replysubtract" href="forum.php?mod=misc&action=postreview&do=against&tid=8157358&pid=&hash=08bfb20c041efc008b98"
onclick="showWindow('login', this.href)" onmouseover="this.title = ($('review_against_143250思考像微信QQ视频通话最小化后悬浮展现实现思路 - 简书
思考像微信QQ视频通话最小化后悬浮展现实现思路
公司做的IM软件基于webrtc实现了音视频通话功能基础功能,新需求是要求通话的同时也可以处理别的东西,即在通话页面点击最小化按钮后视频通话页面变成了一个不大的窗口悬浮在窗口上且是全局的,即使回到home页面依然存在;这种需求非常合理,符合大家一贯的使用习惯,体验性也很棒;刚拿到需求在技术实现上并没有头绪,因为原本的视频通话展示逻辑是用的Activity,一开始想着通过改变Activity的尺寸来实现,但是基于Activity本身的生命周期特性决定了这样并不能达成缩小后的view界面悬浮在所有其他界面之上的要求;而安卓本身能够干这个的事情已知的是一个叫悬浮窗的东东,可以验证下;好在这个功能像微信优酷都有实现,我们不妨试着看看他们是怎么做的。以QQ为例,正常视频通话点击最小化通话界面会缩小成一个很小的区域放在界面顶部
图来自网络
去系统那查看权限发现应用显示悬浮窗权限是允许的,我们把改权限设置为不允许,再次视频通话后点击最小化,显示悬浮窗权限未获取的对话框!果然!那接下来的事情就好办了,将webrtc连接控制和流控制的逻辑抽取出来写成一个工具类,activity界面只做展示逻辑,点击最小化关闭activity,跳转到悬浮窗逻辑。悬浮窗逻辑这为了逻辑清晰我们可以放在一个service里创建,代码如下
public classVoipFloatServiceextendsService {
private static finalStringTAG="FloatService";
privateWindowManagermWindowM
privateWindowManager.LayoutParamsmLayoutP
* float的布局view
private ViewmFloatV
private GLSurfaceView glSurfaceV
private intmFloatWinWidth,mFloatWinH//悬浮窗的宽高
private intmFloatWinMarginTop,mFloatWinMarginR
private intmLastX=0,mLastY=0;
private intmStartX=0,mStartY=0;
public voidonCreate() {
super.onCreate();
LogEx.d(TAG,"onCreate: ");
createWindowManager();
createFloatView();
public voidonDestroy() {
super.onDestroy();
LogEx.d(TAG,"onDestroy: ");
removeFloatView();
private voidcreateWindowManager() {
LogEx.d(TAG,"createWindowManager: ");
// 取得系统窗体
mWindowManager= (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
//计算得出悬浮窗口的宽高
DisplayMetrics metric =newDisplayMetrics();
mWindowManager.getDefaultDisplay().getMetrics(metric);
intscreenWidth = metric.widthP
mFloatWinWidth = (int) (screenWidth *0.8/3);
mFloatWinHeight=mFloatWinWidth*4/3;
mFloatWinMarginTop= (int)this.getResources().getDimension(R.dimen.rkcloud_av_floatwin_margintop);
mFloatWinMarginRight= (int)this.getResources().getDimension(R.dimen.rkcloud_av_floatwin_marginright);
// 窗体的布局样式
// 获取LayoutParams对象
mLayoutParams=newWindowManager.LayoutParams();
// 确定爱悬浮窗类型,表示在所有应用程序之上,但在状态栏之下
//TODO? 在android2.3以上可以使用TYPE_TOAST规避权限问题
mLayoutParams.type= WindowManager.LayoutParams.TYPE_TOAST;//TYPE_PHONE
mLayoutParams.format= PixelFormat.RGBA_8888;
mLayoutParams.flags= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
// 悬浮窗的对齐方式
mLayoutParams.gravity= Gravity.RIGHT| Gravity.TOP;
// 悬浮窗的位置
mLayoutParams.x=mFloatWinMarginR
mLayoutParams.y=mFloatWinMarginT
mLayoutParams.width=mFloatWinW
mLayoutParams.height=mFloatWinH
* 创建悬浮窗
private voidcreateFloatView() {
LogEx.d(TAG,"createFloatView: ");
LayoutInflater inflater = LayoutInflater.from(VoipFloatService.this);
mFloatView= inflater.inflate(R.layout.voip_float_layout, null);
glSurfaceView= (GLSurfaceView)mFloatView.findViewById(R.id.float_gl_surface_view);
glSurfaceView.setPreserveEGLContextOnPause(true);
glSurfaceView.setKeepScreenOn(true);
mWindowManager.addView(mFloatView,mLayoutParams);
mFloatView.setOnTouchListener(newView.OnTouchListener() {
public booleanonTouch(View v,MotionEvent event) {
intaction = event.getAction();
if(MotionEvent.ACTION_DOWN== action) {
mStartX=mLastX= (int) event.getRawX();
mStartY=mLastY= (int) event.getRawY();
}else if(MotionEvent.ACTION_UP== action) {
intdx = (int) event.getRawX() -mStartX;
intdy = (int) event.getRawY() -mStartY;
if(Math.abs(dx) &5|| Math.abs(dy) &5) {
}else if(MotionEvent.ACTION_MOVE== action) {
intdx = (int) event.getRawX() -mLastX;
intdy = (int) event.getRawY() -mLastY;
mLayoutParams.x=mLayoutParams.x-
mLayoutParams.y=mLayoutParams.y+
mWindowManager.updateViewLayout(mFloatView,mLayoutParams);
mLastX= (int) event.getRawX();
mLastY= (int) event.getRawY();
mFloatView.setOnClickListener(newView.OnClickListener() {
public voidonClick(View v) {
maxZoom2WebRtcActivity();
VoipFloatService.this.stopSelf();
VideoRendererGui.setView(glSurfaceView, newRunnable() {
public voidrun() {
LogEx.d(TAG,"createFloatView: VideoRendererGui.setView localVideo run: ");
if(WebRtcHelperEx.getInstance().isWebRtcChanelAlive()) {
WebRtcHelperEx.getInstance().updateVideoUI(WebRtcHelperEx.latestLocalVideoSize,WebRtcHelperEx.latestRemoteVideoSize);
if(WebRtcHelperEx.getInstance().isWebRtcChanelAlive()) {
LogEx.d(TAG,"createFloatView: webrtc instance is alive and we will call resetRenders");
WebRtcHelperEx.getInstance().resetRenders();
WebRtcHelperEx.getInstance().updateVideoUI(WebRtcHelperEx.VIDEOSIZE_SMALL,WebRtcHelperEx.VIDEOSIZE_BIG);
private voidremoveFloatView() {
LogEx.d(TAG,"removeFloatView: ");
if(mFloatView!=null&&mWindowManager!=null) {
mWindowManager.removeView(mFloatView);
* 单击后回到@WebRTCActivity以切换为大尺寸页面
private voidmaxZoom2WebRtcActivity() {
//TODO? 跳转到Activity
当点击最小化后关闭了视频通话中的WebRtcActivity,并创建FloatService,在其中创建悬浮窗口并设置Touch事件使其可以随手指滑动,将webrtc流渲染到悬浮窗口内的glSurfaceView上。当点击该窗口时,关闭floatService,移除悬浮窗口,跳转打开WebRtcActivity。以上就是Activity视频页面和悬浮窗口页面互相切换的逻辑,效果如下图
用来碎叨android相关的鸡毛蒜皮和其他后使用快捷导航没有帐号?
只需一步,快速开始
查看: 78259|回复: 21
在线时间18 小时经验值403 最后登录注册时间帖子阅读权限60UID
大学本科, 积分 403, 距离下一级还需 297 积分
TA的每日心情开心 22:40签到天数: 3 天[LV.2]偶尔看看I
G币36 最后登录注册时间
马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。
已有帐号?   下载游戏和软件,请【】进入机锋市场!
RT.....以前用别的UI都会设置,但是三星的没找到,应用权限里面没有允许悬浮窗这个选项
在线时间18 小时经验值403 最后登录注册时间帖子阅读权限60UID
大学本科, 积分 403, 距离下一级还需 297 积分
TA的每日心情开心 22:40签到天数: 3 天[LV.2]偶尔看看I
G币36 最后登录注册时间
自己置顶……
在线时间18 小时经验值403 最后登录注册时间帖子阅读权限60UID
大学本科, 积分 403, 距离下一级还需 297 积分
TA的每日心情开心 22:40签到天数: 3 天[LV.2]偶尔看看I
G币36 最后登录注册时间
没人知道吗…
在线时间134 小时经验值135 最后登录注册时间帖子阅读权限40UID1667992
高中生, 积分 135, 距离下一级还需 65 积分
该用户从未签到
G币49 最后登录注册时间
设定 应用程序 应用程序管理器 更多 可出现在顶部的应用程序 找到微信 打开 即可
在线时间0 小时经验值32 最后登录注册时间帖子阅读权限20UID
小学生, 积分 32, 距离下一级还需 18 积分
TA的每日心情开心 07:57签到天数: 2 天[LV.1]初来乍到
G币6 最后登录注册时间
在线时间18 小时经验值403 最后登录注册时间帖子阅读权限60UID
大学本科, 积分 403, 距离下一级还需 297 积分
TA的每日心情开心 22:40签到天数: 3 天[LV.2]偶尔看看I
G币36 最后登录注册时间
jiangcun 发表于
设定 应用程序 应用程序管理器 更多 可出现在顶部的应用程序 找到微信 打开 即可 ...
非常感谢!
在线时间13 小时经验值319 最后登录注册时间帖子阅读权限50UID
大学专科, 积分 319, 距离下一级还需 81 积分
TA的每日心情开心 00:28签到天数: 15 天[LV.4]偶尔看看III
G币20 最后登录注册时间
左上角拉下就是
在线时间3 小时经验值12 最后登录注册时间帖子阅读权限10UID5904302
幼儿园, 积分 12, 距离下一级还需 3 积分
该用户从未签到
G币11 最后登录注册时间
谢谢,会了
在线时间3 小时经验值12 最后登录注册时间帖子阅读权限10UID5904302
幼儿园, 积分 12, 距离下一级还需 3 积分
该用户从未签到
G币11 最后登录注册时间
再问一下,你的S7微信视频聊天模糊吗?我的超级模糊!
在线时间83 小时经验值202 最后登录注册时间帖子阅读权限50UID
大学专科, 积分 202, 距离下一级还需 198 积分
TA的每日心情衰 23:37签到天数: 1 天[LV.1]初来乍到
G币3 最后登录注册时间
北京中新创 发表于
再问一下,你的S7微信视频聊天模糊吗?我的超级模糊!
我有发帖吐槽视频模糊。。。
Powered by}

我要回帖

更多关于 畅玩助手王者荣耀微信 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信