Intel® Collaboration Suite for WebRTC
Community support and discussions on the Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC).
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646

3.5版本设置不订阅自身画面

Daghe
Beginner
219 Views

当我设置MIX为false时,仍显示本地流画面,

  for ( i in conference.localStreams) {
      if (conference.localStreams.hasOwnProperty(i)) {
        if (conference.localStreams.id() === stream.id())
        {
          fromMe = true;
          break;
        }
      }
    }
    if (fromMe) {
        L.Logger.info('stream', stream.id(),
      'is from me; will not be subscribed.');
      return;
    }

 

 

0 Kudos
17 Replies
Qiujiao_W_Intel
Employee
219 Views

请问你的目的是什么, 你贴出来的这段代码的意思是如果新来的这路流是本地pub的话就不进行sub, 如果你是不想本地创建的流也不显示的话请参考script2.js文件里Woogeen.LocalStream.create API的回调,localstream创建好之后sample页面就会把本地创建的流显示出来

Daghe
Beginner
219 Views

我就是不想sub本地pub的这路流,但是3.5的版本这段代码不生效,仍sub了本地流,3.4.1的版本是可以的,我看到conference.localStreams的类型发生了变化

Daghe
Beginner
219 Views

感谢你的回复,我的做法是像p2p时设置成两个人只能看到对方的画面,不显示自身的画面,但是3.5的版本这段代码依旧sub了本地流画面

Qiujiao_W_Intel
Employee
219 Views

Hi, 3.5里localstream的类型有做更改,可以通过以下方式来判断是不是本地流:

调用join的成功回调里会返回自己的id信息保存以下本地id,然后在stream-added event的返回信息里会包含remote stream信息,remotestream里有from属性,通过判断remotestream的from属性跟之前保存的本地id来判断是不是本地流

Daghe
Beginner
219 Views

感谢你的回复

我已经尝试了from属性为resp.self.id  我已经使用如下代码解决此问题

for (var localStream of conference.localStreams) {
          L.Logger.info('localStream11 in conference:',localStream [0]);
        if (localStream 0] === stream.id()) {
          fromMe = true;
          break;
        }
  }

我尝试使用stream.pauseVideo()日志报错 stream.pauseVideo is not a function,文档中没有示例,如何调用?期待您的回复,谢谢!

 

Qiujiao_W_Intel
Employee
219 Views

pauseVideo是conferenceClient的API,请仔细查看文档,要pause video的stream作为第一个参数传进去
 

void Woogeen.ConferenceClient.pauseVideo ( WoogeenStream  stream,
    function  onSuccess,
    function  onFailure 
  )
 
Daghe
Beginner
219 Views

我尝试了confence.pauseVideo 将订阅过的流停止,仍返回unable to call pauseVideo,

3.5的版本支持录制为MP4功能,在哪可以修改默认的mkv,我尝试之后的mp4文件一直是0字节没有增长

Daghe
Beginner
219 Views

 

mp4功能实现,修改了音频编码,sub是设置了keyFrameInterval为1秒,但是录制下来的视频没有生效gop值较大

pause依旧无法生效,期待回复! 谢谢!

Qiujiao_W_Intel
Employee
219 Views

目前我们startRecord接口并没有设置keyFrameInterval的参数,这个参数目前只是在subscribe API里加了,所以subscribe设置的keyFrameInterval并不会对record的流生效。

另外pauseVideo的stream参数要传入的是WoogeenStream类型而不是直接传入stream id,请确认代码

Daghe
Beginner
219 Views

感谢回复,录制功能的keyFrameInterval能否加入下个版本? 使用PauseVideo时我传入的参数是WoogeenStream类型,调用的是resp.streams[0],仍旧返回错误unable to call pauseVideo  ,我在尝试3.5版本时发现360浏览器和搜狗浏览器加入不到混合流中,创建流失败create LocalStream failed错误码为1100,使用3.4.1版本时可以正常使用,能给我个示例代码吗。谢谢

Qiujiao_W_Intel
Employee
219 Views

请问你们record的时候设置keyframInterval的use case是什么,我们需要收集相关需求进行评估,请关注后续发布。

另外你传入pauseVideo的resp.streams[0]是在哪个API的返回信息记录的stream信息, 需要pause的是本地流还是remote 流, 如果pause的是本地流,把Woogeen.LocalStream.create的返回里的stream值记录然后在pauseVideo的时候传进去,这个时候其他用户看到他的流就是pause状态;如果pause的是remote流,这个API也是pause自己已经subscribe的remote流,调用这个API之后不会对其他用户sub的流产生任何影响。请对比这个说明进行合理的API调用

Qiujiao_W_Intel
Employee
219 Views

另外,目前我们官方支持的浏览器是chrome跟firefox,360浏览器跟搜狗浏览器的问题我们会跟进,请关注后续进展

Daghe
Beginner
219 Views

刚解压安装的3.5版本尝试后firefox加入房间连自己的摄像头画面都没有,firefox的版本试了好几个都不行,3.4.1的版本能够显示,chrome能够正常显示,请帮忙试一下是不是自身环境的问题

startRecord开启录制时,怎么使页面刷新后依旧录制在同一个文件中。尝试之后recorderId是变化的

Qiujiao_W_Intel
Employee
219 Views

你那边的firefox版本是多少,是用http://ip:3001登陆的还是https://ip:3004进行连接的,如果是用3004连接并且使用的是默认证书,请在firefox中使用F12查看network需要手动允许证书

目前不能刷新之后持续录制到一个文件里,刷新之后用户已经退出,相应的录像也就停止。后续的发布中我们会加入restful API,到时候的接口就能满足刷新之后依旧录制在同一个文件中的需求,请关注后续测试

Daghe
Beginner
219 Views

3.5版本中对浏览器要求更高,Chrome需在59版本以上,Firefox需在50以上,尝试Safari未显示订阅的混合流画面,希望后续版本能够优化

在conference.agent,中agent.toml   【Internal】选项tcp/sctp有何作用,信令传输协议是tcp数据传输是udp在哪可以设置传输的协议

Daghe
Beginner
219 Views

怎么能看到3.4.1的文档,记得3.4.1版本中有setVideoBitrate

Qiujiao_W_Intel
Employee
219 Views

Daghe, 如果有其他的问题请另开一个问题,我们都会进行答复

Reply