从 0 打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
32579 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
WebRTC 1对1通话 (23讲)
从 0 打造音视频直播系统
15
15
1.0x
00:00/00:00
登录|注册

14 | 如何打开/关闭音视频?

不发送视频数据
丢掉视频流
不播放视频
关闭通道
不采集音频
丢掉音频流
不播放声音
不发送视频数据
丢掉视频流
不播放视频
关闭通道
不采集音频
丢掉音频流
不播放声音
关闭所有视频流的发送
从发送端控制
从播放端控制
停止对本端音频数据的采集
发送端控制
播放端控制
关闭所有视频流的发送
从发送端控制
从播放端控制
停止对本端音频数据的采集
发送端控制
播放端控制
其他可以打开/关闭音视频的方法
关闭自己的视频
关闭远端的视频
将自己的声音静音
将远端的声音静音
关闭自己的视频
关闭远端的视频
将自己的声音静音
将远端的声音静音
关闭自己的视频
关闭远端的视频
将自己的声音静音
将远端的声音静音
思考时间
代码实现
基本逻辑
实时互动直播系统中的常见需求
如何打开/关闭音视频

该思维导图由 AI 生成,仅供参考

在实时互动直播系统中,打开 / 关闭音视频流是很常见的需求。作为一个直播用户,你至少会有下面几种需求:
将远端的声音静音。比如来了一个电话,此时,应该先将直播中远端的声音关掉,等接完电话再将远端的声音打开,否则电话的声音与直播远端的声音会同时播放出来。
将自己的声音静音。比如老板要找你谈话,这时你应该将直播中自己的声音静音,否则你与老板的一些私密谈话会被远端听到。比如被老板骂了,要是被远端听到可就尴尬了。
关闭远端的视频。这个与远端声音静音差不多,只不过将声音改为视频了。比如当机子性能比较差的时候,为了节省资源,你可能会选择将远端的视频关闭掉。不过这种情况不是很多。
关闭自己的视频。当你不想让对方看到自己的视频时,就可以选择关闭自己的视频。比如今天你的状态特别不好,你又特别在乎你的形象,此时你就可以选择关闭自己的视频。
这几个功能是实时互动直播中的必备功能。因此,在开发实时互动直播系统时一定要将这些功能添加到你的系统中,那该如何实现它们呢?

基本逻辑

针对上面的问题,本节我们就讨论一下如何才能实现这几个功能。下面我们就按需求分别对这几个功能做详细的分析。

1. 将远端的声音静音

要实现这个功能,你可以通过在播放端控制发送端控制两种方式实现。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了实时互动直播系统中的音视频流控制需求和实现方法。主要包括远端声音静音、自己声音静音、关闭远端视频和关闭自己视频等功能。文章提出了基本逻辑和代码实现方法,包括在播放端控制和发送端控制两种方式。具体实现方法包括设置muted属性、丢弃音频流、停止音频采集和关闭通道等。通过详细的分析和代码示例,为读者提供了实现音视频流控制功能的指导和参考。读者可以根据产品需求选择适合的方法来实现音视频的打开与关闭。文章还提醒读者在多人实时互动的场景中,需要提前搞清楚、学透彻相关知识。文章内容全面,对于读者快速了解音视频流控制具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 打造音视频直播系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • 许童童
    你还能想到其他可以打开 / 关闭音视频的方法吗? 我能想到通过物理的方式,比如拔掉开关,关闭电源。或者通过硬件控制器。

    作者回复: 关闭电源...,兄弟你够猛,哈哈!

    2019-08-15
    3
  • npersonal
    老师,video/audio的自动播放是有规则限制的,以chrome为例除非静音或者用户主动触发,这块是怎么处理的

    作者回复: 有autoplay 属性

    2021-02-25
  • benevolent
    声音或者视频 removetrack后 或者stop掉后 怎么重新开启声音或者视频?我目前是重新建立的peerconnection感觉这样特别傻

    作者回复: 如果你的track没有stop还可以重新再添加回peerconnection

    2020-08-11
    4
  • 焦亠乂
    实际应用中, 关闭自己的视频时,如果不关闭摄像头,本地加显一直存在,自己怎么确定关掉了自己的视频?

    作者回复: sorry! 没太理解你的意思!

    2019-11-26
  • Winter
    请问webrtc的声音来源可以是电脑应用自身的声音,比如播放的音乐,而不是采集外界的声音么?

    作者回复: 通过电脑的mic 采集的。如果你是一台笔记记本的话,它本身就自带mic;如果你是PC 的话,要外接mic。

    2019-11-16
  • frank
    SFU服务临时静音,都是服务器端停止转发该rtp实现

    作者回复: 是的

    2019-08-17
    2
  • hao11111205
    将自己的声音静音的其它方法:将本地的麦克风静音;将远端的声音静音的其它方法:将本地的喇叭静音。主要是通过控制音频设备来实现。

    作者回复: 将本地的麦克静音后,是对方听不到了,不是你的喇叭不响哈,你再仔细想想!

    2019-08-16
    2
  • 老师,请问下是什么原因导致我的ice回调方法didChangeIceGatheringState这么慢呢,从Gathering到Complete的过程需要5秒至10秒

    作者回复: 其实这个状态你不必特别关心的,它是由底层自己完成的,不是说只有 complete之后才进行连接。你只要每次收到回调,就将它发送给对方,这样双方是在 gathering的状态下就开始偿试连接的建立的。对于本地收集 candidate 来说是特别快的,你的收集之所以慢,应该是你使用了 stun 服务导致的,主要还是你的 stun服务器的与你的主机之间的网络问题

    2019-08-15
    3
  • Jason
    其他可以打开 / 关闭音视频的方法:通过更新sdp的视频、音频信息,是不是也可以呢?

    作者回复: 是的,具体的做法呢?

    2019-08-15
    2
  • Geek_c3f843
    SDP里告诉对方我任何音/视频格式都不支持或者我没有音/视频设备
    2020-11-04
    1
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部