自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 音频流工具设计与实现

实现多个设备之间音频流的任意流动,包括麦克风(手机、蓝牙耳机、有线耳机)到扬声器(手机、蓝牙耳机、有线耳机)、麦克风到文件、文件到扬声器的音频流动。用户可任意选择输入/输出音频设备。支持单输入流多输出流。实践发现,不同手机的音频配置不样同。而DeviceInfo输出的详细信息,有可能和打开AudioRecord或AudioTrack配置对不上,比如详细信息说支持单声道,实际不支持单声道。实用工具,可用于调试/测试多音频硬件设备、蓝牙无线扩音器、指定设备录音等。

2023-12-03 22:14:04 431 2

原创 AudioRecord指定音频输入设备录音

经过上次的AAudio踩坑后,一段时间信心指数跌到了谷底。调整情绪后,再次把目光指向了AudioRecord。可以实现任意音频设备的输入、任意音频设备的输出。

2023-11-19 20:52:56 810 1

原创 使用AAudio获取&输出音频流

Andoird音频架构中,HAL之上均无法完全控制硬件。AAudio只能在一定程度上指定硬件,并且打开流后,不一定成功打开的是你指定的硬件。可以指定输入音频设备,也可能是权限有关系不可用。有单声道(所有麦克输入都是一样输出)和双声道(底部麦克左声道,顶部麦克是右声道)输出,具体不同的体现,应该取决于HAL层的实现。

2023-11-12 14:47:56 395 1

原创 tcpdump抓包长度大于1514的原因

tcpdump抓包中:存在9k以上的包,可能开启了TSO,GRO,GSO;存在1514~9k的包可能开启了TSO,GRO,GSO或Jumbo Frames;通过通过ifconfig 看MTU或ethtool看TSO,GRO,GSO来判断。如果觉得系统受到长包影响,可以用ifconfig或ethtool关闭相应的功能。

2023-10-28 22:01:26 1358

原创 Linux进程调度机制

工作中调查问题时,涉及到了Linux进程调度机制的分析,这里总结一下。

2023-10-28 19:02:38 205

原创 PCAP文件数据包的时间戳是在哪里被标记上的

最近在调查网络收包延时问题,出现了发包时间戳和收包时间戳差距200ms左右的情况。这就先要明确pcap文件包数据包的时间戳是谁标记的。

2023-10-28 17:19:52 392

原创 Ubuntu AndroidStudio NDK极简环境搭建

NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。例如,对于重要的核心代码保护,或者需要使用到优秀的第三方C/C++库的情况,以及需要在多个平台上移植代码或处理大量数据追求性能的场景。网上找了一些NDK环境的搭建,都比较复杂,我这里说的我的基础环境,Ubuntu 20.04 + Android Studio Giraffe 2022.3.1 Patch 2,搭建起来非常简单。

2023-10-21 21:35:47 547 1

原创 android开发获取手机麦克风设备信息

之前为了测试蓝牙耳机的麦克,想从蓝牙耳机的麦克录音。尝试发现三星、小米自带的录音机并不能从蓝牙录音。看了网上一篇文章,提供了一个特定的录音APP,才支持开启蓝牙录音功能。非常令人疑惑。想到现在的手机,有不只一个麦克风,是否能开发一个可选择录音源的录音APP呢?看了这篇文章,介绍了几种音频开发模式。问了ChatGPT指定麦克风录音的方法其实这段代码,并不可用。其中AudioRecord的原型是这样的。

2023-10-21 20:47:36 1321 3

转载 Android音频架构「转载」

上面我们的示例提到了ALSA,这个其实是Linux平台的一种音频驱动架构。下面介绍两种常见的Linux音频驱动架构。本文介绍了Andorid系统的整套音频架构,以及架构各层级的功能及作用。并介绍了一种绕开framework层的新的音频采集方式。其实Andorid的音频架构实现是更复杂的一个过程,本文只是简略的对各个模块做了一些介绍,以助于更深入理解上一篇提到的各个API的实现。其实API提供出来的音频接口,都是属于接口层,不论是Java接口还是C++接口,都隶属于应用进程。

2023-10-21 09:05:53 210

转载 Android音频API介绍「转载」

Player:Recorder:更多API细节可以参考官方提供的《OpenSL_ES_Specification_1.0.1.pdf》。播放逻辑可参考oarplayer中的音频输出代码。本篇介绍了Android提供的音频采集/播放接口,Java层可以使用AudioRecorder/AudioTrack,jni层推荐使用Oboe。不论哪个API都是最终通过framework层、HAL层与硬件打交道。音频采集时在应用层会有一个“AudioRecord”的线程来与framework的服务交互。

2023-10-21 09:01:26 1440

原创 AirSim无人机仿真——手柄操作

AirSim无人机仿真,手柄操作无人机,AirSim地图下载

2022-04-08 20:41:47 2626

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除