Skip to main content

moregeek program

flutter耳返和双声道功能的实现_mb62c3fbf0624ad的博客-多极客编程

1 耳返功能简介

ZEGO Express SDK 提供了Flutter耳返和双声道的功能,在视频直播、K歌、音频录制等场景下广泛应用,开发者可根据实际业务场景需要设置,一套代码可实现跨平台音视频耳返功能,节省开发成本。

实时音视频的耳返作用就是在嘈杂的环境下,清楚地听伴奏和自己的声音,来鉴定自己有没有走音。技术实现上要实时录制的音频低延迟播放出去,这个过程对延迟要求很高。

  • 耳返即耳机采集监听,在设备上插入耳机(普通耳机或蓝牙耳机)后,能从本机耳机侧听到本设备麦克风采集的声音。
  • 双声道即两个声音通道,听到声音时可以根据左耳和右耳对声音相位差来判断声源的具体位置。ZEGO Express SDK 默认音频采集单声道,当开发者有高音质需求时,可开启双声道采集功能,通过专门的双声道采集设备可以采集到双声道的音频数据并进行推流。

2 实现耳返和声道功能的前提条件

在进行耳返与声道设置之前,请确保:

3 ZEGO 音视频 SDK使用步骤

3.1 设置直播或K歌场景下的耳返

3.1.1 开启直播耳返

开启预览后或者开始推流后调用 ​​enableHeadphoneMonitor​​ 开启采集监听即耳返,主播方讲话后,会听到自己的声音。

开启耳返后,在连接上耳麦时耳返功能才实际生效。

ZegoExpressEngine.instance.enableHeadphoneMonitor(true);
3.1.2 设置耳返音量

开启预览后或者开始推流后可调用 ​​setHeadphoneMonitorVolume​​ 调整耳返的音量。

其中参数 “volume” 为采集耳返音量大小,取值范围为 0 ~ 200,默认 “60”。

ZegoExpressEngine.instance.setHeadphoneMonitorVolume(100);

3.2 设置声道

​setAudioConfig​​​ 和 ​​setAudioCaptureStereoMode​​​ 都需要在 ​​startPublishingStream​​​、​​startPlayingStream​​​、​​startPreview​​​、​​createMediaPlayer​​​ 和 ​​createAudioEffectPlayer​​ 之前调用才有效。

3.2.1 设置音频双声道编码

在推流前调用 ​​setAudioConfig​​ 方法设置音频质量相关配置,其中音频编码声道参数 “channel” 需要设置为双声道编码(默认值为单声道编码),其他参数取默认值即可。

var audioConfig = ZegoAudioConfig.preset(ZegoAudioConfigPreset.HighQualityStereo));
ZegoExpressEngine.instance.setAudioConfig(audioConfig);
3.2.2 设置音频采集双声道模式

调用 ​​setAudioCaptureStereoMode​​ 方法开启音频双声道采集,并根据实际场景设置 “Mode” 参数(默认值为始终不开启双声道),用于实现始终开启双声道采集或仅在推流时开启双声道。

ZegoExpressEngine.instance.setAudioCaptureStereoMode(ZegoAudioCaptureStereoMode.Always);
3.2.3 推流

请参考 ​​快速开始 - 实现流程​​ 的 “3.3 推流”,此时所推流的音频是双声道,拉流端无需做额外的配置,直接拉流即可播放双声道音频。

双声道采集需要推流端使用支持双声道采集的设备作为音频输入源,一般手机的麦克风不支持采集双声道。

4 ZEGO 即构音效解决方案

ZEGO 即构音视频SDK还拥有AI降噪、美声音效的能力,在线K歌场景中可锦上添花,配合超低延时耳返功能,端到端延迟低于 70 ms,达到人体无感官延迟水平,演唱者可享受极致的K歌体验,畅享真正实时的快乐。

©著作权归作者所有:来自51CTO博客作者即构开发者的原创作品,请联系作者获取转载授权,否则将追究法律责任

基于paddlelite的ocr识别身份证号码应用_雪飘七月的博客-多极客编程

一、概要现在的核酸检测,需要给身份证拍照,然后识别身份证号码,从而快速识别登记用户信息。同样的应用场景还有很多,本来要靠手动输入身份证号的操作,现在只要拍张照片就可以识别,大大提高工作效率。PaddleLite是百度旗下飞浆团队开发的人工智能图像处理相关的架构。OCR是识别图片中的文字字符的一项技术。二、运行工程​​PaddleLite OCR GitHub源码链接​​我们今天主要是做Androi

gb28181设备控制和teleboot远程启动命令探究_daniusdk的博客-多极客编程

设备控制设备控制基本要求源设备向目标设备发送设备控制命令,控制命令的类型包括球机/云台控制、远程启动、录像控制、 报警布防/撤防、报警复位、强制关键帧、拉框放大、拉框缩小、看守位控制、设备配置等。设备控制采用 IETFRFC3428中的 Message方法实现。源设备包括SIP客户端、网关或者联网系统,目标设备包括SIP设备、网关或者联网系统。源设备向目标设备发送球机/云台控制命令、远程启动命令、

dart的mixin详解_亦可追寻的博客-多极客编程

mixin 是什么? Mixin 是一种在多个类层次结构中重用代码的方法。它是Dart里的新特性。 mixin的用途 mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法、变量而不必成为其子类。Mixin的作用就是在多个类层次结构中重用类的代码,在类中混入其他功能,来增强代码的复用能力。 你可以将多个mixins放入同一个类中,而且dart对这个数量没有作任何

gb28181设备接入端如何实现校时?_daniusdk的博客-多极客编程

在探讨这个问题之前,我们先看看GB/T28181-2016官方文档怎么说的,9.10.1章节校时基本要求提到:联网内设备支持基于SIP方式或 NTP方式的网络校时功能,标准时间为北京时间。SIP方式校时见本节具体描述;NTP(见IETFRFC2030)协议的网络统一校时服务,网络校时设备分为时钟源和客户端,支持客户/服务器的工作模式,时钟源应支持 TCP/IP、UDP及 NTP协议,将输入的或是自

如何在unity下采集音视频实现轻量级rtsp服务(类似于ipc)_daniusdk的博客-多极客编程

好多开发者在做虚拟仿真、VR教育等场景的时候,遇到个问题,想把头显里面的画面在内网环境下低延迟的同步出来,又不想单独部署流媒体服务器。为此,我们在Unity下,添加了轻量级RTSP服务模块,通过头显端启动个轻量级RTSP服务,把采集到的音视频数据,通过对外提供RTSP拉流URL的形式,供内网其他终端调用,废话不多说,先上图看效果:上图展示的是,Android的Unity下Camera场景获取到te

android gb28181接入端实时位置订阅和上报之-如何获取当前经纬度_daniusdk的博客-多极客编程

我们在做Android平台GB28181的时候,其中实时位置(MobilePosition)订阅和上报这块,涉及到实时经纬度的获取,特别是执法记录、车载系统的那个等场景,几乎就是标配。今天主要是分享一段实时获取位置的代码:/* * CameraPublishActivity.java * CameraPublishActivity * * Github: https

requestbody注解_wx61ee58d59725e的博客-多极客编程

requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容。1、RequestBody的作用是将前端传来的json格式的数据转为自己定义好的javabean对象,需要注意的是传入数据的属性名称要和后端javabean中定义的一致,发送请求后可以看到在控制台中我们通过javabean对象的get方法打印出了前端传来的

这些运维小经验,忍不住拍案叫绝_mb6242cc9db1000的博客-多极客编程

需求在运维工作中随着经验不断增多,以下几个场景想必经常遇到:Linux如何快速删除大量文件?Vsphere如何在不重启的情况下识别新添加的iscsi硬盘?Linux中rm命令如何做到防误删?不同Linux服务器之间如何实现快速挂载?Linux中如何将用户快速添加到附属组?细心的人往往会通过自己特有的方式来快速处理,不禁让人拍手叫绝。下面我就来具体介绍下我的处理方式吧。1.Linux如何快速删除大量

elasticsearch聚合的嵌套桶如何排序_github.com/zq2599的博客-多极客编程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于嵌套桶 在elasticsearch的聚合查询中,经常对聚合的数据再次做聚合处理,例如统计每个汽车品牌下的每种颜色汽车的销售额,这时候DSL中就有了多层aggs对象的嵌套,这就是嵌套桶(此名称来自《Elasticsearch 权威指南》),如下

mysql的元数据_小小迷糊的博客-多极客编程

今天我们来说下MySQL的元数据,先说说定义和作用:通过元数据查询结果信息: select、update和delete语句影响的记录数 数据库和数据表的信息: 包含了数据库及数据表的结构信息 MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等 在MySQL的命令提示符中,可以很容易的获取以上服务器信息数据库和数据表列表 使用 show databases; 或 show tables;

h3c wx2510hf 无线控制器 + wa4320h-acn实现三个lan口提供有线接入业务时的配置说明_无冬无夏的博客-多极客编程

WA4320H-ACN有四个以太网接口:GigabitEthernet1/0/1(Uplink口)、GigabitEthernet1/0/2(LAN1口)、GigabitEthernet1/0/3(LAN2口)、GigabitEthernet1/0/4(LAN3口)。以太网口的对应关系在H3C的官方文档《H3C WA4320H-ACN 无线接入点 安装指导-6W101-整本手册》中查询并分析得出这

概述构建应用智能运维系统的核心能力_枫叶飘飘的博客-多极客编程

如果企业无法抵消信息系统趋于复杂化带来的运维风险,数字化营销、数字化生产、数字化管理等战略就是空谈。建设具备全景监控、智能运维能力的应用性能管理系统,保障用户数字体验,提升应用可用性,已成为企业必然的选择。随着信息系统的快速演进,政府、企业对数字信息系统应用的依赖持续上升,对相应的应用性能、稳定性保障系统建设的关注同步升温。而传统以应用指标采集为主的APM系统已经难以满足云化、容器化、微服务化的复