设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何实时监测多人聊天时远端摄像头的开关状态?

[复制链接]

14

主题

87

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
跳转到指定楼层
楼主
发表于 2016-3-2 09:41:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好,我想知道在程序中如果实时监控远端设备摄像头的开关状态,来为UI设置背景图片或是显示远端视频。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

沙发
发表于 2016-3-2 09:47:17 | 只看该作者
您好,使用BRAC_QueryUserstate();可以查询指定用户的摄像头状态。
回复 支持 反对

使用道具 举报

14

主题

87

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
板凳
 楼主| 发表于 2016-3-2 13:14:43 | 只看该作者
佰锐科技-邵光清 发表于 2016-3-2 09:47
您好,使用BRAC_QueryUserstate();可以查询指定用户的摄像头状态。

谢谢!
你好,我想问一下 有没有档远端修改了摄像头 或者麦克风的状态后被调用的回调函数?
我现在是通过一下方式来获取信息的,但是达不到实时的效果。
NSMutableArray *allUserMArr = [AnyChatPlatform GetOnlineUser];//[[ViewController getSelfIsSingleObj] getOnlineUserArray];
    NSLog(@"%@", allUserMArr);
    for (int i = 0; i < [allUserMArr count]; i++)
    {
        NSString *remoteId =  [allUserMArr objectAtIndex:i];
        int stateCamera = [AnyChatPlatform GetCameraState:[remoteId intValue]];//1:关闭 2:打开
        int stateSpeak  = [AnyChatPlatform GetSpeakState:[remoteId intValue]];// 0:关闭 1:打开
        NSLog(@"当前用户 id : %@ camera : %d speak : %d", remoteId, stateCamera, stateSpeak);
    }
回复 支持 反对

使用道具 举报

14

主题

87

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
地板
 楼主| 发表于 2016-3-2 13:23:50 | 只看该作者
佰锐科技-邵光清 发表于 2016-3-2 09:47
您好,使用BRAC_QueryUserstate();可以查询指定用户的摄像头状态。

我试试 好像是这个
// 用户信息更新通知,wParam(INT)表示用户ID号,lParam(INT)表示更新类别
- (void) OnAnyChatUserInfoUpdateint) dwUserId : (int) dwType;
回复 支持 反对

使用道具 举报

14

主题

87

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
5#
 楼主| 发表于 2016-3-2 13:40:31 | 只看该作者
佰锐科技-邵光清 发表于 2016-3-2 09:47
您好,使用BRAC_QueryUserstate();可以查询指定用户的摄像头状态。

找到了
- (void) OnAnyChatCameraStateChgint) dwUserId : (int) dwState
回复 支持 反对

使用道具 举报

6#
发表于 2016-3-2 13:45:38 | 只看该作者
kenshin 发表于 2016-3-2 13:23
我试试 好像是这个
// 用户信息更新通知,wParam(INT)表示用户ID号,lParam(INT)表示更新类别
- (v ...

您好,不是这个,这个是用户信息更新通知。

远端音频和视频的状态变化事件,请查看开发文档的4.3章。
回复 支持 反对

使用道具 举报

14

主题

87

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
7#
 楼主| 发表于 2016-3-2 15:18:34 | 只看该作者
佰锐科技-邵光清 发表于 2016-3-2 13:45
您好,不是这个,这个是用户信息更新通知。

远端音频和视频的状态变化事件,请查看开发文档的4.3章。

恩,我已经找到了。
我还有一个问题想问一下。
就是我在修改本地音频状态时调用的函数
[AnyChatPlatform UserSpeakControl:-1:NO]; 和 [AnyChatPlatform UserSpeakControl:-1:YES];

然后协议函数- (void) OnAnyChatMicStateChgint) dwUserId : (BOOL) bGetMic只调用两次,后面我再修改音频状态时,协议函数就不调用了。请问是什么情况?
回复 支持 反对

使用道具 举报

8#
发表于 2016-3-2 16:34:10 | 只看该作者
kenshin 发表于 2016-3-2 15:18
恩,我已经找到了。
我还有一个问题想问一下。
就是我在修改本地音频状态时调用的函数

您好,必须进入房间后才能调用UserSpeakControl,请问是什么业务场景下需要频繁调用呢?协议函数不调用时,控制台输出什么信息不?
回复 支持 反对

使用道具 举报

14

主题

87

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
9#
 楼主| 发表于 2016-3-2 16:56:59 | 只看该作者
佰锐科技-邵光清 发表于 2016-3-2 16:34
您好,必须进入房间后才能调用UserSpeakControl,请问是什么业务场景下需要频繁调用呢?协议函数不调用时 ...

你好,就是彼此通讯的时候 设置静音 和 非静音的两种状态。 我用安卓的demo测试IOS的时候,我IOS上的代理是调用的。我在调用UserSpeakControl的时候已经进入房间了,可是 检查音频状态的代理  在我点击按钮切换的时候 只触发了两次。
还请你帮我看看 谢谢
这是我的代码:
- (void)jingYinPress
{
    if (isJingYin == NO)//关闭
    {
        isJingYin = YES;
        imgJingYin.image = [UIImage imageNamed"multitalkMuteModeOn"];
        [AnyChatPlatform UserSpeakControl:-1:NO];
    }
    else//打开
    {
        isJingYin = NO;
        imgJingYin.image = [UIImage imageNamed"multitalkMuteMode"];
        [AnyChatPlatform UserSpeakControl:-1:YES];
    }

}

回复 支持 反对

使用道具 举报

10#
发表于 2016-3-2 17:26:48 | 只看该作者
kenshin 发表于 2016-3-2 16:56
你好,就是彼此通讯的时候 设置静音 和 非静音的两种状态。 我用安卓的demo测试IOS的时候,我IOS上的代理 ...

您好,音视频状态切换我们的示例程序有做,可以参考一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 05:28 , Processed in 0.125636 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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