Android网络对讲机的实现

news/2024/11/30 8:50:29/

  上个星期公司给出了一个项目需求,做一个基于socket通讯协议的网络对讲机。于是在项目开始前计划了一下基本的实现流程。

  1、从手机麦中采集音频数据;2、将PCM音频数据编码压缩;3、将压缩好的音频通过无线网络发送出去;4、其他手机接收音频数据并解码;5、将音频数据写入到音轨中播放。项目虽然简单,但其中的一些小问题也折腾了我不少时间。

  首先我们创建一个线程用来采集音频数据,通过android提供的AudioRecord可以实时采集音频流。AudioRecord类在Java应用程序中管理音频资源,用来记录从平台音频输入设备产生的数据。其实调用AudioRecord很简单,首先创建AudioRecord对象,AudioRecord会初始化并连接音频缓冲区,用来缓冲新的音频数据。根据指定的缓冲区的大小来决定AudioRecord能够记录多长的数据。

调用getMinBufferSize(int,int,int)返回最小的缓冲区大小。然后根据得到的最小缓冲区大小来创建AudioRecord对象:

inputMinSize = AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
audioRec = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000

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

相关文章

冷藏温度范围_冷藏和冷冻的温度标准

冷藏和冷冻的温度标准:冷藏4至10度,冷冻负18度。 冷藏是指把食物贮存在低温设备里,以免变质、腐烂的一种保鲜手段。一般冷藏的温度是4至10度范围内,常温的温度带是&#…

冷藏温度范围_冰箱冷藏室的温度范围是多少

1 冰箱冷藏室结冰的处理方法:如果结冰较厚的话,应及时进行除冰处理,先把电源切断,然后打开冷冻室门,将食品取出,等其自然融化后清理干净即可。也可以用专用的清理工具进行清理,但不能用金属制品…

虹科方案 | 制药环境中冰箱温度记录的最佳实践——全集成温度监测系统

有效监测冰箱温度是药店、医疗中心和制药实验室的一项重要要求。保持准确的冰箱温度记录对所有储存处方药和疫苗的设施来说是必不可少的,但实现这一目标的最佳方法是什么? ● 制药机构需要在特定的温度下储存疫苗和处方药,以保证病人的安全并…

冰箱冷藏室变为冷冻室的故障处理

故障分析与检修;故障冰箱是一台航天bcd—222直冷式双回路冰箱,出现冷藏室变为冷冻室的问题。 航天bcd—222直冷式双回路冰箱的制冷系统中采取了两只温控器.分别控制冷藏室相冷冻室内的温度,用一只电磁阀来负责切换对两室的供液通道…

辉瑞新冠疫苗需零下70度保存,应该如何对其进行温度监测?

近期,我们得知Moderna以及辉瑞和BioNTech合作开发的新冠疫苗均需要深度冷藏,Moderna的冠状病毒候选疫苗mRNA-1273要求的储存温度为零下20摄氏度;辉瑞和BioNTech的候选产品BN1162b2和BNT162b2要求的储存温度为零下70摄氏度。辉瑞公司将需要为其…

利用Django的视图类TemplateView将模板、视图与模板变量方便快速的整合在一起

TemplateView是Django提供的通用视图类之一,它允许您在不编写任何Python代码的情况下将模板与视图关联起来。下面是关于TemplateView类的一些介绍: 渲染模板:TemplateView负责渲染指定的模板并返回生成的HTML响应。您只需提供模板名称或路径即…

MySQL 高级(进阶) SQL 语句

创建两个表格 use awsl; create table location (Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New York); insert into location values(West,Los Angeles); insert into location values(West,Houst…

Mac上mx master鼠标移动卡顿问题的解决

从蓝牙换成优联连接。 默认1通道是USB连接,如果匹配过蓝牙的话通道的信号被占用了,需要下载软件匹配,您可以根据软件提示进行匹配的呢。 优联软件下载:https://support.logi.com/hc/articles/360025297913 (如果打不开…