webrtc直播音频无法静音

news/2024/11/30 2:27:49/

现在直播越来越火,然而好的直播框架代码是很重要的,webrtc是谷歌开源的一个直播框架,集成简单功能较全,是一个较好的选择。

然而在直播开发过程中发现一个问题,就是webrtc直播的声音无法静音。在调节音量的的时候就能注意到,音量调节的图标并不是音乐媒体,而是通话的音频标志,通过看源码也发现,webrtc框架选用的就是通话的音频通道STREAM_VOICE_CALL;而因为通话音频通道的特殊性,是不允许将通话音频置为静音的(就是说音量值为0的时候仍然有声音输出),这也符合一般的使用思维(通话的时候静音意义不大)。

那么这时候该怎么解决这个问题呢?用户在看直播的时候希望静音这个需求是合理的,我选用的解决策略是:

1、设置音量调节监听,监听通话音量调节动作获取当前音量;

2、检测到一次或多次调音至0则直接暂停webrtc框架中的音频资源,调至0以上时再开启音频资源。


关键代码(其中mRoom和currentRemoteStream分别是webrtc框架中自带的ConferenceClient和RemoteStream类的实例化对象):

	//TODO private MyVolumeReceiver mVolumeReceiver = null;/*** 注册当音量发生变化时接收的广播*/private void myRegisterReceiver() {mVolumeReceiver = new MyVolumeReceiver();IntentFilter filter = new IntentFilter();filter.addAction("android.media.VOLUME_CHANGED_ACTION");registerReceiver(mVolumeReceiver, filter);}/*** 监听音量变化*/private class MyVolumeReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// 检测是否调到最小音量,是的话直接暂停音频流if (intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")) {AudioManager audioManager = ((AudioManager) getSystemService(AUDIO_SERVICE));int vol = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);if (vol==0) {mRoom.pauseAudio(currentRemoteStream, null);}else {mRoom.playAudio(currentRemoteStream, null);}}}}












http://www.ppmy.cn/news/363588.html

相关文章

Google I/O 2021 中文直播全攻略,即刻收藏

5 月 19 日凌晨 00:40 (明天晚上) Google I/O 2021 将正式开幕 今年大会以 "全线上" 形式强势回归 让您足不出户,享受科技盛宴 更有实时中文翻译,为您第一时间带来 创新科技灵感和前沿产品资讯 精彩内容不容错过 赶紧调好闹钟 准时和全球开发…

VideoJS 网页直播实现默认静音

在开发 LiveQing高性能流媒体服务器 网页直播多分屏的时候, 产品提出议建说, 能不能在多分屏的时候, 默认静音状态. 因为多分屏界面, 如果声音打开, 好多个直播画面同时发出声音太过嘈杂, 体验不好. 我表示赞同. 心想, 这个应该不难处理吧, 结果踩到一个 video-js-swf 的坑, 在…

统信操作系统 摄像头驱动程序

ubuntu: 安装 摄像头驱动 UVC 购买摄像头的时候知道了大部分摄像头不支持Linux系统。经过陶大佬的指点,发现可以通过安装cheese来激活Ubuntu自带的摄像头驱动(UVC)。 Tutorial 首先,查看自己要购买的摄像头是否支持 UVC驱动 。 如…

电脑用什么软件可以测试网速吗,在电脑上怎么测试网速_两种快速测试网速的方法介绍 - 驱动管家...

如果电脑安装的是最新的Windows 10系统,要如何测试电脑网速呢?Win10网速测试的问题,今天小编就为大家带来了2种Win10电脑网速测试方法,希望对电脑爱好者朋友有所参考,此方法同样适合XP/Win7/Win8等系统。 一、在线网速…

LINUX摄像头驱动分析

背景:RK3288 MIPI OV摄像头 V4L2框架 一.RK MIPI 二.V4L2框架 现在,从设备树开始,分析video0是如何构建起来的。 rk3399-linux.dtsi: compatible "rockchip,rk3399-cif-isp";在驱动目录下查找rockchip,rk3399-cif-isp 在medi…

在X86平台上安装摄像头驱动及应用

http://mxhaard.free.fr处下载的需的驱动,内核版本是2.6.11以上的用gspca,2.6.11以下的用spca5xx(这也不是绝对的,因为我曾在2.6.17下也驱动成功过)。 目录 [隐藏] 1 驱动安装 1.1 编译内核1.2 安装驱动1.3 查看摄像头型号 2 安装摄像头应用…

Android网卡网速测试

1.可以使用speedtest.apk测试 2.使用iPerf进行网络吞吐量测试 2.1 unbunt环境 1)apt-get install iperf (安装iperf) 2) iperf -s (作为服务端启动) 3)iperf -c 127.0.0.1 (另起窗口自测命…

3. SpringCloudAlibaba、nacos 实现配置中心

一、微服务中配置文件的问题 1.1 配置文件的问题: 配置文件的数量会随着服务的增加持续递增单个配置文件无法区分多个运行环境配置文件内容无法动态更新,需要重启服务 1.2 引入配置中心 引入配置中心:刚才架构就会成为这样。是由配置中心统…