设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
楼主: xudalin
打印 上一主题 下一主题

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

[复制链接]

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
11#
发表于 2014-8-12 15:13:26 | 只看该作者
xudalin 发表于 2014-8-12 14:49
android系统
根据2楼admin的回答,我就是想在接到回调后重新把背景图重新设置成透明的

哦,我们查下这个接口。你可以通过另外一种方式再做这个处理“把背景图重新设置成透明”。可以启动一个定时器查询用户的码率,如果码率不为0,视频数据就过来了,就可以设置背景了。
回复 支持 反对

使用道具 举报

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
12#
 楼主| 发表于 2014-8-12 15:27:34 | 只看该作者
廖斌 发表于 2014-8-12 15:13
哦,我们查下这个接口。你可以通过另外一种方式再做这个处理“把背景图重新设置成透明”。可以启动一个定 ...

设置背景有很多方式 这都没关系  现在的问题是 我一旦把自己这边视频断掉了  再开启的话 对方的画面还是不动的 您之前说参考restart方法  那也的需要这个调用的timing啊 现在是这个方法没有效果,没办法调用restart方法 我在想是不是我少设了什么参数呢?》
回复 支持 反对

使用道具 举报

8

主题

26

帖子

100

积分

注册会员

Rank: 2

积分
100
13#
发表于 2014-8-12 15:36:36 | 只看该作者
xudalin 发表于 2014-8-12 15:27
设置背景有很多方式 这都没关系  现在的问题是 我一旦把自己这边视频断掉了  再开启的话 对方的画面还是 ...

把你代码贴上来看下
回复 支持 反对

使用道具 举报

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
14#
 楼主| 发表于 2014-8-12 15:43:12 | 只看该作者
guangxian2012 发表于 2014-8-12 15:36
把你代码贴上来看下

调用部分
  1. // 关闭声音
  2.                 findViewById(R.id.closeVoice).setOnClickListener(new OnClickListener() {
  3.                        
  4.                         @Override
  5.                         public void onClick(View v) {
  6.                                 anychat.UserSpeakControl(-1, 0);
  7.                                 v.setVisibility(View.GONE);
  8.                                 findViewById(R.id.openVoice).setVisibility(View.VISIBLE);
  9.                         }
  10.                 });
  11.                 // 打开声音
  12.                 findViewById(R.id.openVoice).setOnClickListener(new OnClickListener() {
  13.                        
  14.                         @Override
  15.                         public void onClick(View v) {
  16.                                 anychat.UserSpeakControl(-1, 1);
  17.                                 v.setVisibility(View.GONE);
  18.                                 findViewById(R.id.closeVoice).setVisibility(View.VISIBLE);
  19.                         }
  20.                 });
  21.                 // 关闭视频
  22.                 findViewById(R.id.closeVideo).setOnClickListener(new OnClickListener() {
  23.                        
  24.                         @Override
  25.                         public void onClick(View v) {
  26.                                 anychat.UserCameraControl(-1, 0);
  27.                                 bSelfVideoOpened = false;
  28.                                 v.setVisibility(View.GONE);
  29.                                 findViewById(R.id.openVideo).setVisibility(View.VISIBLE);
  30.                         }
  31.                 });
  32.                 // 打开视频
  33.                 findViewById(R.id.openVideo).setOnClickListener(new OnClickListener() {
  34.                        
  35.                         @Override
  36.                         public void onClick(View v) {
  37.                                 anychat.UserCameraControl(-1, 1);
  38.                                 bSelfVideoOpened = true;
  39.                                 v.setVisibility(View.GONE);
  40.                                 findViewById(R.id.closeVideo).setVisibility(View.VISIBLE);
  41.                         }
  42.                 });
复制代码
AnyChatStateChgEvent接口部分
  1.         @Override
  2.         public void OnAnyChatCameraStateChgMessage(int dwUserId, int dwState) {
  3.                 if(dwUserId == userID){
  4.                         if (dwState != 2) {
  5.                                 bOtherVideoOpened = false;
  6.                         } else {
  7.                                 // 如果是采用Java视频显示,则需要设置Surface的CallBack
  8.                                 if (AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) == AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {
  9.                                         int index = anychat.mVideoHelper.bindVideo(otherView.getHolder());
  10.                                         anychat.mVideoHelper.SetVideoUser(index, userID);
  11.                                 }
  12.                                 bOtherVideoOpened = true;
  13.                         }
  14.                 }
  15.         }
复制代码
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
15#
发表于 2014-8-12 15:53:26 | 只看该作者
xudalin 发表于 2014-8-12 15:43
调用部分AnyChatStateChgEvent接口部分
  1.         @Override
  2.         public void OnAnyChatCameraStateChgMessage(int dwUserId, int dwState) {
  3.                 if(dwUserId == userID){
  4.                         if (dwState != 2) {
  5.                                 bOtherVideoOpened = false;
  6.                         } else {
  7.                                 // 如果是采用Java视频显示,则需要设置Surface的CallBack
  8.                                 if (AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) == AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {
  9.                                         int index = anychat.mVideoHelper.bindVideo(otherView.getHolder());
  10.                                         anychat.mVideoHelper.SetVideoUser(index, userID);
  11.                                 }
  12.                                 bOtherVideoOpened = true;
  13.                         }
  14.                 }
  15.         }
复制代码
这段代码有执行吗?
回复 支持 反对

使用道具 举报

2

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
16#
 楼主| 发表于 2014-8-12 15:54:34 | 只看该作者
廖斌 发表于 2014-8-12 15:53
这段代码有执行吗?

有 就是我之前和您说的 只有第一次把视频关了的时候有 后来再重新设置后就没有了 也就是说只有if条件走了 else重新设置的部分没有走 也不知道怎么回事
回复 支持 反对

使用道具 举报

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的视频?
回复 支持 反对

使用道具 举报

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
19#
发表于 2014-8-12 15:56:41 | 只看该作者
廖斌 发表于 2014-8-12 15:55
如果是这样的话,是不需要调用

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

使用道具 举报

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就都黑屏显示
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-27 23:31 , Processed in 0.171844 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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