AnyChat技术支持论坛

标题: 如何实时监测多人聊天时远端摄像头的开关状态? [打印本页]

作者: kenshin    时间: 2016-3-2 09:41
标题: 如何实时监测多人聊天时远端摄像头的开关状态?
你好,我想知道在程序中如果实时监控远端设备摄像头的开关状态,来为UI设置背景图片或是显示远端视频。

作者: 佰锐科技-邵光清    时间: 2016-3-2 09:47
您好,使用BRAC_QueryUserstate();可以查询指定用户的摄像头状态。
作者: kenshin    时间: 2016-3-2 13:14
佰锐科技-邵光清 发表于 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);
    }

作者: kenshin    时间: 2016-3-2 13:23
佰锐科技-邵光清 发表于 2016-3-2 09:47
您好,使用BRAC_QueryUserstate();可以查询指定用户的摄像头状态。

我试试 好像是这个
// 用户信息更新通知,wParam(INT)表示用户ID号,lParam(INT)表示更新类别
- (void) OnAnyChatUserInfoUpdateint) dwUserId : (int) dwType;
作者: kenshin    时间: 2016-3-2 13:40
佰锐科技-邵光清 发表于 2016-3-2 09:47
您好,使用BRAC_QueryUserstate();可以查询指定用户的摄像头状态。

找到了
- (void) OnAnyChatCameraStateChgint) dwUserId : (int) dwState
作者: 佰锐科技-邵光清    时间: 2016-3-2 13:45
kenshin 发表于 2016-3-2 13:23
我试试 好像是这个
// 用户信息更新通知,wParam(INT)表示用户ID号,lParam(INT)表示更新类别
- (v ...

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

远端音频和视频的状态变化事件,请查看开发文档的4.3章。
作者: kenshin    时间: 2016-3-2 15:18
佰锐科技-邵光清 发表于 2016-3-2 13:45
您好,不是这个,这个是用户信息更新通知。

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

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

然后协议函数- (void) OnAnyChatMicStateChgint) dwUserId : (BOOL) bGetMic只调用两次,后面我再修改音频状态时,协议函数就不调用了。请问是什么情况?
作者: 佰锐科技-邵光清    时间: 2016-3-2 16:34
kenshin 发表于 2016-3-2 15:18
恩,我已经找到了。
我还有一个问题想问一下。
就是我在修改本地音频状态时调用的函数

您好,必须进入房间后才能调用UserSpeakControl,请问是什么业务场景下需要频繁调用呢?协议函数不调用时,控制台输出什么信息不?
作者: kenshin    时间: 2016-3-2 16:56
佰锐科技-邵光清 发表于 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];
    }

}


作者: 佰锐科技-邵光清    时间: 2016-3-2 17:26
kenshin 发表于 2016-3-2 16:56
你好,就是彼此通讯的时候 设置静音 和 非静音的两种状态。 我用安卓的demo测试IOS的时候,我IOS上的代理 ...

您好,音视频状态切换我们的示例程序有做,可以参考一下。
作者: kenshin    时间: 2016-3-3 09:10
佰锐科技-邵光清 发表于 2016-3-2 17:26
您好,音视频状态切换我们的示例程序有做,可以参考一下。

我这个就是demo里面的勒。。。。
作者: kenshin    时间: 2016-3-3 09:38
佰锐科技-邵光清 发表于 2016-3-2 17:26
您好,音视频状态切换我们的示例程序有做,可以参考一下。

你好,我这次拿demo测试了一下,还是一样的问题。这个需求在安卓上面是没有问题的。我都测过了




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3