第74篇一对多之视频下加学生姓名或电话(二)给每一张老师端的单击图片都加上取消同步及array_uintersect

关键词:视频下加学生姓名或电话, 给每一张老师端的单击图片都加上取消同步, array_uintersect

一、视频下加学生姓名或电话

1.1 测试平台--本地服务器运行平台

老师端:带老师名字

https://localhost:9101/demos/index.html?roomid=888&t=600&&teaNameMobile=莫言

学生一:

https://localhost:9101/demos/student.html?studentId=1001&stuNameMobile=张三丰&t=600#888

学生二:带学生中文名字  

https://localhost:9101/demos/student.html?studentId=1002&stuNameMobile=白子画&t=600#888

学生三:带学生英文名字

https://localhost:9101/demos/student.html?studentId=1003&stuNameMobile=小白&t=600#888

1.2视频下加学生姓名或电话

1学生端获取姓名-------------student.html

a.)代码如下:

//获取学生的姓名(不存在则用手机号代替)

 var MobileName =params.stuNameMobile;

console.log('MobileName-qhz-->',MobileName);

b.)效果图如下:

2加上视频id传到老师端-------------student.html

    //把学生的姓名电话传到老师端,同时视频id也要传过去

  connection.send({

        'MobileName':MobileName,

       'video_Id':connection.localMediaStreamId

    });

3传到老师端

代码如下:

    //接收学生姓名及学生视频id加载到学生视频上面

    if(event.data.MobileName){

         MobileNameStu = event.data.MobileName;

         videoIdStu = event.data.video_Id;

         console.log('MobileNameStu-->',MobileNameStu);

        console.log('videoIdStu-->',videoIdStu);

    }

运行效果如下:

4追加到相应的视频下面

   由于3)已获取学生的视频id,所以直接追加到这个div下面即可。

代码如下:

    //接收学生姓名及学生视频id加载到学生视频上面

    if(event.data.MobileName){

         MobileNameStu = event.data.MobileName;

         videoIdStu = event.data.video_Id;

       if($("#"+MobileNameStu).length <= 0){//这个判断避免同样的姓名加载两次

          $("div#"+videoIdStu).append("<divid = "+ MobileNameStu +" style='margin:0auto;text-align:center'>"+MobileNameStu+"</div>");

       }

}

注:这个代码有两个注意点,一是由于div里面的id,与div包的video,这两个id号一样,所以就要用到选择器("div#"+videoIdStu),追加到div里面,而不是追加到video里面;第二个注意点是:我加了一个if控制(if($("#"+MobileNameStu).length<= 0)),原因是每次进一个学生,之前的都要追加一次,这个判断表示,如果div已存在(表示学生的姓名追加过了),就不用再次追加了。

实现的效果如下:

5老师的姓名显示出来,学生后面都加上某某学生

   a.)在学生进来时,加入老师姓名,如下:

    //追加老师姓名在其视频下----莫言

    teaVideoId = connection.localMediaStreamId;

if($("#"+teaNameMobile).length <= 0){//这个判断避免同样的姓名加载两次

                   $("div#"+teaVideoId).append("<div id = "+teaNameMobile +" style='margin:0 auto;text-align:center'>"+teaNameMobile+"老师</div>");

}

注:现在多学生连接,会出现问题,下一步功能暂停,要解决稳定性问题了。

1.3 给每一张老师端的单击图片都加上取消同步

实现了,代码如下:

a.)首先在单击列表图片时,给学生端发个消息------------index.html

  //老师单击私有白板上图片,上到老师共享白板上去同时停止私有白板最后一张图片同步-----------------2

    functiononImgClickPrivate() {

        //点击图片时,停止学生端最后一张白板同步到师的共享白板

       connection.send({onImgClickPrivateStopSynchronous:true});

             designer.undo('all');

             designer.addImgByUrl(this.src, true);

             $("[name =thumbnailStuPri]").parent().removeClass("tea_base64_selectStuPri");

             $(this).parent().addClass("tea_base64_selectStuPri");

    }

b.)学生收到消息后,停止最后一张私有白板同步----student.html

   //老师给学生私聊时答疑或老师单击私有白板列表时---停止当前学生的私有白板上传刷新

    if((event.data.teaAnswerQue && event.data.uid ===connection.localMediaStreamId) || event.data.onImgClickPrivateStopSynchronous ) {

       clearInterval(pushPritoShaWB_timer);

        return;

   }

接下来,就要解决稳定性问题了。

二、php

2.1 PHP array_uintersect() 函数

1定义和用法

array_uintersect()函数用于比较两个(或更多个)数组的键值 ,并返回交集。

注释:该函数使用用户自定义函数比较键值!

该函数比较两个(或更多个)数组的键值,并返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。

2语法

array_uintersect(array1,array2,array3...,myfunction)

3例子

a.)例子一

比较三个数组的键值(使用用户自定义函数比较键值),并返回交集:

注:这个函数是说,只要值同时存在三个数组中,就反应到结果集中,不看键名。

2017年3月15日星期三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值