FreeSWITCH 1.10.10 简单图形化界面15 - JsSIP媒体控制(LookLook)

FreeSWITCH 1.10.10 简单图形化界面15 - JsSIP媒体控制


FreeSWITCH界面安装参考:https://blog.csdn.net/jia198810/article/details/137820796

0、 界面预览

http://myfs.f3322.net:8020/

用户名:admin,密码:admin

FreeSWITCH界面安装参考:https://blog.csdn.net/jia198810/article/details/137820796

1、本地媒体流

通过JsSIP建立通话后,获取JsSIP.RTCSession类,通过mute()方法可控制是否关闭和开启本地音频或者视频媒体。

可参考JsSIP使用手册https://jssip.net/documentation/api/session/#method_mute

如下:

获取session
javascript 复制代码
  //通过JsSIP.UA的newRTCSession事件获取呼叫session,并通过mute开启关闭本地音频和视频
  this.ua.on('newRTCSession', (e) => {
      this.currentSession = e.session;
      //其他代码
      .....
   })
本地音频
javascript 复制代码
//关闭本地音频
//通过options控制是关闭音频还是视频
this.muteLocalAudio = () =>{
    //开启音频,则audio:false
	this.currentSession.mute(options={audio:true,video:false})
}
本地视频
javascript 复制代码
//关闭本地视频
//通过options控制是关闭音频还是视频
this.muteLocalVideo = () =>{
    //开启视频,则video:false
	this.currentSession.mute(options={audio:true,video:true})
}

2、远端媒体流

通过JsSIP建立通话后,获取JsSIP.RTCSession类的confirmed事件获取远端媒体MediaStream对象,然后通过媒体轨道MediaStreamTrack关闭和开启远端媒体。

可参考web开发手册https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/enabled

如下:

获取媒体流
javascript 复制代码
 //获取JsSIP.RTCSession类的confirmed事件获取远端媒体
this.audioReceiver = null;
this.videoReceiver = null;
this.currentSession.on("confirmed", (e) => {
    

     // 分别获取音频和视频
    receivers.forEach((receiver) => {
        if (receiver.track.kind === "audio") {
            audioReceiver = receiver;
        } else if (receiver.track.kind === "video") {
            videoReceiver = receiver;
        }
     }); 
   // 播放音频及视频
   ......
});
远端音频

通过MediaStreamTrack的enabled属性控制媒体轨道

javascript 复制代码
//关闭远端音频
this.closeRemoteAudio = () =>{
    //开启音频,则enabled = true
    this.audioReceiver.getAudioTracks()[0].enabled = false
}
远端视频
javascript 复制代码
//关闭远端视频,黑屏
this.closeRemoteVideo = () =>{
    //开启视频,则enabled = true
    this.videoReceiver.getVideoTracks()[0].enabled = false
}
相关推荐
Black蜡笔小新4 小时前
WebRTC技术在音视频处理上的难点剖析:EasyRTC嵌入式视频通话SDK的优化策略
人工智能·大模型·音视频·webrtc
TSINGSEE4 小时前
嵌入式音视频通话SDK组件EasyRTC:全平台设备兼容,智能硬件里的WebRTC调用实践
网络协议·音视频·webrtc·实时音视频·p2p·智能硬件
EasyCVR4 小时前
EasyRTC嵌入式音视频通话SDK:基于纯C语言的跨平台实时通信系统设计与实践
linux·c语言·开发语言·音视频·webrtc·h.265
Mr_Zzr4 小时前
【webrtc debug tools】 rtc_event_log_to_text
webrtc·debug tools
EasyCVR4 小时前
JavaScript API与WebRTC技术解析:EasyRTC嵌入式视频通话SDK的实现
javascript·音视频·webrtc
Mr_Zzr4 小时前
探讨如何在AS上构建webrtc(3)分享WebRTC-CMakeBuild轻量化工程
学习·webrtc
weixin_486281452 天前
webRTC实现一对一通话视频流程
音视频·webrtc
EasyCVR3 天前
EasyRTC嵌入式视频通话SDK的跨平台适配,构建web浏览器、Linux、ARM、安卓等终端的低延迟音视频通信
android·arm开发·网络协议·tcp/ip·音视频·webrtc
Book_熬夜!3 天前
CSS—补充:CSS计数器、单位、@media媒体查询
前端·css·html·媒体
EasyCVR3 天前
EasyRTC嵌入式音视频通话SDK:基于ICE与STUN/TURN的实时音视频通信解决方案
人工智能·音视频·webrtc·实时音视频·h.265