如何修改音频通信质量?

动态修改音频通信质量主要是通过调节音频编码器的目标码率来实现的,可以满足在不同的应用中使用不同通话质量的需求,如局域网或是网络带宽有保障的应用,可以采用较高的通话质量,而互联网则采用较低的通话质量来降低带宽占用。同时也可以动态修改音频通话质量,在较好质量和一般通话质量之间动态切换。该特性需要AnyChat Platform Core SDK V2.8.7以上的版本才能支持。

可通过BRAC_SetSDKOption接口来设置单声道,或是双声道模式下的音频通信质量,典型设置代码如下:

1.DWORD dwMonoBitrate = 15850;

2.BRAC_SetSDKOption(BRAC_SO_AUDIO_MONOBITRATE,(PCHAR)&dwMonoBitrate,sizeof(DWORD));

3.DWORD dwStereoBitrate = 40000;

4.BRAC_SetSDKOption(BRAC_SO_AUDIO_STEREOBITRATE,(PCHAR)&dwStereoBitrate,sizeof(DWORD));

上述示例代码设置了单声道模式下,音频编码的质量是:15.85kbps,双声道模式下,音频的编码质量是:40kbps,当SDK工作在单声道模式下时,单声道设置生效,当SDK工作在双声道模式下时,双声道设置生效。

AnyChat SDK默认是根据服务器的“AnyChatCoreServer.ini”配置文件里面的音频参数部分来确定是工作在单声道采集模式,或是双声道采集模式。当上层应用开启AnyChat SDK的音频自适应模式(默认是关闭状态)后,将根据音频工作模式来动态切换采集参数:

音频工作模式 采样率 采样位数 采样通道 默认质量 备注
发言模式 16000 16 1 15.85kbps 单声道模式
放歌模式 44100 16 2 40kbps 双声道模式
卡拉OK模式 44100 16 2 40kbps 双声道模式
线路输入模式 44100 16 2 40kbps 双声道模式

开启“音频自适应模式”的示例代码如下:

1.//启用音频自动参数功能(默认关闭)

2.DWORD bAudioAutoParam = TRUE;

3.BRAC_SetSDKOption(BRAC_SO_AUDIO_AUTOPARAM,(PCHAR)&bAudioAutoParam,sizeof(DWORD));

关于音频的工作模式可参考:185. 音频工作(采集)模式是什么?

注:不同的客户端可独立工作在不同的模式下,如:A客户端是关闭音频自适应模式(默认状态),B客户端启用音频自适应模式,这两个客户端程序均可正常工作。另外不论是关闭,或是开启音频自适应模式,均可动态调节音频编码的目标码率。

如何修改音频通信质量?

时间: 2024-11-02 23:25:16

如何修改音频通信质量?的相关文章

关于QT中的音频通信问题

今天给大家讲说一个新的东西,使用QT实现音频通信的功能,挺起来是不是很高大上啊,哈哈,实际上我们只是使用一些接口做一些简单的工作而已,并不是让你写一个传输协议和采集音频信息,好了,那我们就来说一说关于在QT中是实现音频通信的具体过程吧! 首先我们要是用到是UDP的通信协议和关于音频信息的采集类和标准的输入输出设别的类,那么我们分别是下面的几个类: QUdpSocket:在QT用用于udp通信的类 QAudioInput:音频采集的类 QIODevice:标准输入输出设备 QAudioOutput

android下调试声卡驱动之I2S音频通信

一.I2S概述 I2S(Inter-IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之 间的数据传输.由4条线组成的数字音频接口,常用于HiFi,STB便携设备.Tx  和Rx信号线用于音频传输.而位时钟和左右时钟 (LRC)用于同步链接.I2S具有灵活性,因为控制器和解码器都可以控制位时钟和左右时钟.位时钟因采样率和主系统时钟而有不 同.LRCLK与采样率相同.少数设备支持独立的ADC和DAC的LRCLK.这使在不同采样率情况下同步捕

用python批量修改音频ID3等标签

使用的模块是eyeD3 一.eyeD3的安装 1.安装msgpack,不安装会报错distributed 1.21.8 requires msgpack, which is not installed pip install msgpack 2.安装magic,不安装的话,在import eyed3时会报错ImportError: failed to find libmagic. Check your installation pip install python-magic-bin==0.4.

iOS开发之音频口通信-通过方波来收发数据

之前做过的项目有需要通过音频口通信用方波来收发数据,由于这方面的资料比较少,下面就介绍下其原理,希望能给大家帮助. 一. 音频通信简介大家应该都知道支付宝声波支付和拉卡拉吧,它们都是利用手机的音频口(手机耳机口)来实现全双工的通信(手机与设备之间的双向通信).其优点是低成本,编码芯片成本低,手机的 3.5mm 通信接口广泛. 二. 市场应用支付宝声波支付手机刷卡器皮肤检测仪检测如甲醛.气压.温度.湿度等等心率.血压等等....................... 三. 通信原理手机上用的耳机大

IOS开发Q&A-IOS8定位应用定位失败及音频录制的相关参数

一. 问题描述:使用xcode6和ios8开发定位应用时,发现执行操作之后,不会调用到定位之后的delegate方法中.查看了一下手机上对应用的定位权限界面,发现我的应用的访问用户的地理位置的权限是空的,即使设置了定位权限依然不会生效.当查阅了相关资料以后,得到如下解决方案: 解决方案: step1: 在 info.plist里加入: NSLocationWhenInUseDescription,允许在前台获取GPS的描述 NSLocationAlwaysUsageDescription,允许在

FFmpeg学习3:播放音频

参考dranger tutorial,本文将介绍如何使用FFmpeg解码音频数据,并使用SDL将解码后的数据输出.本文主要包含以下几方面的内容: 关于播放音频的需要的一些基础知识介绍 使用SDL2播放音频 数据队列 音频格式的转换 dranger tutorial确实入门FFmpeg比较好的教程,虽然作者在2015年的时候根据新版本的FFmpeg更新了,但是其中还是有不少API过时了.特别是,教程中使用的是SDL1.0,和现在的SDL2的API也有很大的不同,并且不能兼容. 1. 关于音频的一些

Linux音频编程指南

Linux音频编程指南 虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序,同时还给出了一些常用的音频编程框架. 一.数字音频 音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理. 数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对原始声音的重

RDP协议集、音频输出、音频输入重定向虚拟通道

一.RDP协议集及子协议之间如何交互 由于目前Windows Server的版本已经进入到了2016版,因此在本文中,终端服务一律称为其最新名称:远程桌面服务(RDS). 以下组件对于了解远程桌面服务协议至关重要: RDP客户端:支持远程桌面服务协议的客户端称为RDP客户端,因为客户端安装了支持远程处理的软件组件.使用此RDP客户端,用户连接到RD会话主机服务器以登录到远程桌面计算机或远程应用程序. 远程桌面会话主机(RD会话主机):RDP客户端与之通信的服务器称为远程桌面会话主机(RD会话主机

Android音频: 如何使用AudioTrack播放一个WAV格式文件?

翻译 By Long Luo 原文链接:Android Audio: Play a WAV file on an AudioTrack 译者注: 1. 由于这是技术文章,所以有些词句使用原文,表达更准确. 2. 由于水平有效,有些地方可能翻译的不够准确,如有不当之处,敬请批评指正. 3. 针对某些语句,适当补充了上下文及更适合中文阅读,尽量做到信达雅. 如果你已经成功地了解了关于AudioTrack的一些话题,那么你可能享受它带来的好处,例如低延迟(在STATIC(静态)模式),能够生成流式音频