Flutter耳返和双声道功能的实现
1 耳返功能简介
ZEGO Express SDK 提供了Flutter耳返和双声道的功能,在视频直播、K歌、音频录制等场景下广泛应用,开发者可根据实际业务场景需要设置,一套代码可实现跨平台音视频耳返功能,节省开发成本。
实时音视频的耳返作用就是在嘈杂的环境下,清楚地听伴奏和自己的声音,来鉴定自己有没有走音。技术实现上要实时录制的音频低延迟播放出去,这个过程对延迟要求很高。
- 耳返即耳机采集监听,在设备上插入耳机(普通耳机或蓝牙耳机)后,能从本机耳机侧听到本设备麦克风采集的声音。
- 双声道即两个声音通道,听到声音时可以根据左耳和右耳对声音相位差来判断声源的具体位置。ZEGO Express SDK 默认音频采集单声道,当开发者有高音质需求时,可开启双声道采集功能,通过专门的双声道采集设备可以采集到双声道的音频数据并进行推流。
2 实现耳返和声道功能的前提条件
在进行耳返与声道设置之前,请确保:
- 已在项目中集成 ZEGO Express SDK,实现基本的实时音视频功能,详情请参考 快速开始 - 集成 和 快速开始 - 实现流程。
- 已在 ZEGO 控制台 创建项目,并申请有效的 AppID 和 AppSign,详情请参考 控制台 - 项目管理 中的“项目信息”。
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歌体验,畅享真正实时的快乐。
Flutter耳返和双声道功能的实现的更多相关文章
- HMS Core积极探索基于硬件耳返的功能,帮助唱吧整体唱歌延迟率降低60%
唱吧的使命是让唱歌更简单.让生活更美好,其布局的K歌业务专注于让曲库更全.音质更好,开创了同框合唱.弹唱等有意思的游戏类K歌玩法.为了让用户拥有更加沉浸的娱乐体验,唱吧与HMS Core积极探索基于硬 ...
- Android 摇一摇之双甩功能
Android 摇一摇之双甩功能 最近做一个摇一摇的功能 网上相关代码很多 但是这次的需求有点奇葩 要求是摇两次才生效 看起来好像很简单 但真正要做遇到的问题还是很多 时间限制 机型灵敏性 摇动的方式 ...
- 【老孟Flutter】Flutter 2的新功能
老孟导读:昨天期待已久的 Flutter 2.0 终于发布了, Flutter Web和Null安全性趋于稳定,Flutter桌面安全性逐渐转向Beta版! 原文链接:https://medium.c ...
- flutter、rn、uni-app比较
前言 每当我们评估新技术时要问的第一个问题就是“它会给我们的业务和客户带来哪些价值?”,工程师们很容易对闪闪发光的新事物着迷,却经常会忽略这些新事物其实可能对我们的客户没有任何好处,反而只会让现有的工 ...
- Vegas技巧分享,如何实现5.1立体声道
Vegas Pro 15除了有各种好用的功能之外,还可以使用此软件制作5.1立体声道的音乐.如果你家里有多个音箱,那么你再也不用担心找不到5.1声道的音乐了,Vegas完全可以帮你实现. 打开简体中文 ...
- Flutter · Python AI 弹幕播放器来袭
AI智能弹幕(也称蒙版弹幕):弹幕浮在视频的上方却永远不会挡住人物.起源于哔哩哔哩的web端黑科技,而后分别实现在IOS和Android的app端,如今被用于短视频.直播等媒体行业,用户体验提升显著. ...
- 锐动视频SDK在金融业务加密双录管理系统通用解决方案
为了更好地保障消费者的合法权益,银监会和保监会提出了要求,在银行.保险从业人员销售理财产品或代理其他机构销售产品时,同期进行录音录像,确保销售人员按程序.按规定介绍产品,以便购买者更清楚地了解产品的性 ...
- QCA4028软件平台启用双WAN指导
1 为何要启用双WAN QCA4028的硬件方案,基板上部署了一个LTE模块插槽,同时又外留了一个USB3.0接口,因此,就可以在此硬件平台上调试基于LTE的双WAN,预期实现: A 链路备份,在任意 ...
- TV 丽音(NICAM)功能
丽音意谓「接近即时的缩扩音频多路广播」 丽音使用数码技术,把电视台发送的两条音频讯号数码化后进行压缩,传送后再在接收机里扩大还原.数码化使用的是14位元 PCM,32千赫采样. 这种广播法可以播出优质 ...
- iOS开发者学习Flutter
Flutter for iOS 开发者 本文档适用那些希望将现有 iOS 经验应用于 Flutter 的开发者.如果你拥有 iOS 开发基础,那么你可以使用这篇文档开始学习 Flutter 的开发. ...
随机推荐
- Redisson读写锁和分布式锁的项目实践
问题1:在修改分组时,有短链接正在访问会出现什么问题?怎么解决 假设:现有线程A正在修改短链a的分组gid1为gid2(还未修改成功) 同时有一个线程B获取了短链a分组gid1,要进行统计pv,uv, ...
- 2024牛客多校3J Rigged Games
欢迎来我的博客看这篇题解! Problem 在两人竞技比赛中,对于任何正整数 \(a\) ,我们定义 \(BO(2 a-1)\) 如下:两名玩家继续竞争,直到其中一人获胜 \(a\) 次,那么他赢得整 ...
- The length of parametric curve (x + sin x, cos x)
问题引入 一个硬币(圆)的周长上有一个点,将硬币在一条线上无滑动地滚动.假设那个点开始时在最上面,滚了半圈到了最下面,求这个点相对于地面的运动轨迹的长度. 或者说,再简单点,自行车总骑过吧.假如你在骑 ...
- 阿里也出手了!灵码AI IDE问世
大家好,我是晓凡. 写在前面 各位程序员小伙伴们,是不是还在为写代码头秃?别担心,阿里云带着它的通义灵码 AI IDE 来拯救你啦! 相信不少小伙伴已经在VSCode.JetBrains IDE等主流 ...
- DeepSeek-v2
Deepseek系列博客目录 Model 核心 Date DeepSeekLLM 探究LLM Scalling Law 2024.01 DeepSeekMath 提出GRPO 2024.04 Deep ...
- kafka单节点安装
下载地址:https://archive.apache.org/dist/kafka/2.2.2/kafka_2.11-2.2.2.tgz 1.配置server.xml # 对外监听地址 list ...
- Redhat 7.2 中文显示及中文输入法设置
一.安装系统语言为中文(此步可以忽略)-1- 查看系统中文语言安装包1命令:yum list kde*chinese 结果:可用安装包 kde-l10n-Chinese.noarch Hint 1:y ...
- 对于PHP数组反转的算法的深度理解
本文由 ChatMoney团队出品 在 PHP 开发中,数组反转是一个常见的操作,它涉及到将数组的键值对或者键的顺序进行倒序排列.本文将深入探讨 PHP 数组反转的算法,并提供相应的代码示例. 一.P ...
- VS2022 下载超详细安装教程(附安装包及秘钥):全能开发工具部署指南
目录 一.VS2022软件核心功能与优势 二.VS2022下载及安装准备 1. 系统要求: 2. VS2022下载: 三.VS2022详细安装步骤 1. 解压VS2022安装包 2. 运行VS2022 ...
- 深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
复杂事件处理(CEP)是一种对事件流进行分析的技术,它能够识别出数据流中的事件序列是否符合特定的模式,并允许用户对这些模式进行处理.Flink CEP 是 CEP 在 Apache Flink 中的具 ...