设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 16740|回复: 24
打印 上一主题 下一主题

如何实现在对方关闭视频后,显示黑屏,而不是画面卡住?

[复制链接]

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
跳转到指定楼层
楼主
发表于 2014-8-11 13:23:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如题,一旦调用UserCameraControl将视频关闭后,对方的视频画面就会卡住不动。但我想做的效果是一旦没有视频信号就用黑屏。请问这个要如何实现?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

25#
发表于 2014-8-13 11:51:00 | 只看该作者
xudalin 发表于 2014-8-13 11:26
版主结贴吧  问题都已经解决了

您好,我们的接口是没有问题的哦,请问是什么原因导致出现这样的问题的呢?
回复 支持 反对

使用道具 举报

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
24#
 楼主| 发表于 2014-8-13 11:26:21 | 只看该作者
版主结贴吧  问题都已经解决了
回复 支持 反对

使用道具 举报

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
23#
 楼主| 发表于 2014-8-12 16:07:16 | 只看该作者
本帖最后由 xudalin 于 2014-8-12 16:09 编辑
廖斌 发表于 2014-8-12 16:00
而且视频的时候B的surfaceview背景必须是透明的

我把CheckVideoStatus的方法中加了else判断 但好像没有用 要怎么设置呢?
  1. if (!bOtherVideoOpened) {
  2.                         if (anychat.GetCameraState(userID) == 2 && anychat.GetUserVideoWidth(userID) != 0) {
  3.                                 otherView.setBackgroundColor(Color.TRANSPARENT);
  4.                                 SurfaceHolder holder = otherView.getHolder();
  5.                                 // 如果是采用内核视频显示(非Java驱动),则需要设置Surface的参数
  6.                                 if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) != AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {
  7.                                         holder.setFormat(PixelFormat.RGB_565);
  8.                                         holder.setFixedSize(anychat.GetUserVideoWidth(userID), anychat.GetUserVideoHeight(userID));
  9.                                 }
  10.                                 Surface s = holder.getSurface();
  11.                                 anychat.SetVideoPos(userID, s, 0, 0, 0, 0);
  12.                                 bOtherVideoOpened = true;
  13.                         } else {
  14.                                 otherView.setBackgroundColor(Color.BLACK);
  15.                         }
  16.                 }
  17.                 if (!bSelfVideoOpened) {
  18.                         if (anychat.GetCameraState(-1) == 2 && anychat.GetUserVideoWidth(-1) != 0) {
  19.                                 myView.setBackgroundColor(Color.TRANSPARENT);
  20.                                 SurfaceHolder holder = myView.getHolder();
  21.                                 // 如果是采用内核视频显示(非Java驱动),则需要设置Surface的参数
  22.                                 if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) != AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {
  23.                                         holder.setFormat(PixelFormat.RGB_565);
  24.                                         holder.setFixedSize(anychat.GetUserVideoWidth(-1), anychat.GetUserVideoHeight(-1));
  25.                                 }
  26.                                 Surface s = holder.getSurface();
  27.                                 anychat.SetVideoPos(-1, s, 0, 0, 0, 0);
  28.                                 bSelfVideoOpened = true;
  29.                         } else {
  30.                                 myView.setBackgroundColor(Color.BLACK);
  31.                         }
  32.                 }
复制代码
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
22#
发表于 2014-8-12 16:00:49 | 只看该作者
xudalin 发表于 2014-8-12 15:57
是要实现这样 就是A可以手动关闭、打开视频信号,关闭的时候用A和B就都黑屏显示

而且视频的时候B的surfaceview背景必须是透明的
回复 支持 反对

使用道具 举报

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
21#
 楼主| 发表于 2014-8-12 15:59:30 | 只看该作者
廖斌 发表于 2014-8-12 15:56
android用的是什么版本呢?之前的android版本实现“A和B正在视频通话,A关闭视频再次打开,B还要再能再次 ...

用的是新的版本啊 那我再下载一版试试
回复 支持 反对

使用道具 举报

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
20#
 楼主| 发表于 2014-8-12 15:57:17 | 只看该作者
廖斌 发表于 2014-8-12 15:54
你是要实现A和B正在视频通话,A关闭视频再次打开,B还要再能再次看到A的视频?

是要实现这样 就是A可以手动关闭、打开视频信号,关闭的时候用A和B就都黑屏显示
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
19#
发表于 2014-8-12 15:56:41 | 只看该作者
廖斌 发表于 2014-8-12 15:55
如果是这样的话,是不需要调用

android用的是什么版本呢?之前的android版本实现“A和B正在视频通话,A关闭视频再次打开,B还要再能再次看到A的视频”是有问题的。要将android更新到最新版本。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
18#
发表于 2014-8-12 15:55:29 | 只看该作者
廖斌 发表于 2014-8-12 15:54
你是要实现A和B正在视频通话,A关闭视频再次打开,B还要再能再次看到A的视频?

如果是这样的话,是不需要调用
  1. if (AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) == AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {

  2. 09.                                        int index = anychat.mVideoHelper.bindVideo(otherView.getHolder());

  3. 10.                                        anychat.mVideoHelper.SetVideoUser(index, userID);

  4. 11.                                }
复制代码
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
17#
发表于 2014-8-12 15:54:55 | 只看该作者
廖斌 发表于 2014-8-12 15:53
这段代码有执行吗?

你是要实现A和B正在视频通话,A关闭视频再次打开,B还要再能再次看到A的视频?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-11-23 06:07 , Processed in 0.142069 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表