Android中关于Audio库的知识

Android Audio官方文档分析 目录 第一节本文的主要内容 第二节官方文档的目录分析 第二节Android Audio架构分析 第三节配置音频 第五节Tee Sink的作用 第一节本文的主要内容 对于开发者而言,掌握第一手开发资料尤其重要,官方文档毋容置疑是妥妥的一手资料,如果官方都出现问题,那么使用官方提供的资源进行开发,也会受到极大地影响,官方虽然不一定完全正确,但是官方作为顶级的开发者,其资料大有参考价... 阅读详情

Android会自动扫描外存(SD卡)中的文件,获取到audio类型的文件,分析文件后,将信息数据存储在 MediaStore.Audio.AudioColumns表内,该表的结构如下:

字段包括如下:

Constants
StringALBUMThe album the audio file is from, if any

Type: TEXT

StringALBUM_IDThe id of the album the audio file is from, if any

Type: INTEGER (long)

StringALBUM_KEYA non human readable key calculated from the ALBUM, used for searching, sorting and grouping

Type: TEXT

StringARTISTThe artist who created the audio file, if any

Type: TEXT

StringARTIST_IDThe id of the artist who created the audio file, if any

Type: INTEGER (long)

StringARTIST_KEYA non human readable key calculated from the ARTIST, used for searching, sorting and grouping

Type: TEXT

StringBOOKMARKThe position, in ms, playback was at when playback for this file was last stopped.
StringCOMPOSERThe composer of the audio file, if any

Type: TEXT

StringDURATIONThe duration of the audio file, in ms

Type: INTEGER (long)

StringIS_ALARMNon-zero if the audio file may be an alarm

Type: INTEGER (boolean)

StringIS_MUSICNon-zero if the audio file is music

Type: INTEGER (boolean)

StringIS_NOTIFICATIONNon-zero if the audio file may be a notification sound

Type: INTEGER (boolean)

StringIS_PODCASTNon-zero if the audio file is a podcast

Type: INTEGER (boolean)

StringIS_RINGTONENon-zero if the audio file may be a ringtone

Type: INTEGER (boolean)

StringTITLE_KEYA non human readable key calculated from the TITLE, used for searching, sorting and grouping

Type: TEXT

StringTRACKThe track number of this song on the album, if any.
StringYEARThe year the audio file was recorded, if any

Type: INTEGER

[Collapse]
Inherited Constants
From interfaceandroid.provider.BaseColumns
String_COUNTThe count of rows in a directory.
String_IDThe unique ID for a row.
From interfaceandroid.provider.MediaStore.MediaColumns
StringDATAThe data stream for the file

Type: DATA STREAM

StringDATE_ADDEDThe time the file was added to the media provider Units are seconds since 1970.
StringDATE_MODIFIEDThe time the file was last modified Units are seconds since 1970.
StringDISPLAY_NAMEThe display name of the file

Type: TEXT

StringMIME_TYPEThe MIME type of the file

Type: TEXT

StringSIZEThe size of the file in bytes

Type: INTEGER (long)

StringTITLEThe title of the content

Type: TEXT



类MediaStore.Audio.Media

描述了手机内和SD卡Audio文件的URI
Fields
public static final Uri EXTERNAL_CONTENT_URIThe content:// style URI for the "primary" external storage volume.
public static final Uri INTERNAL_CONTENT_URIThe content:// style URI for the internal storage.


【初学音频】Android的Audio系统 主要是硬件部分balabala 阅读详情

相关推荐

安卓智能手机芯片上audio的bringup

对于智能手机来说,audio的基本功能如下:codec播放音乐,codec APP录音,codec电话,蓝牙播放音乐,蓝牙电话,codec VoIP电话,蓝牙 VoIP电话。上行时蓝牙耳机采集音频数据通过蓝牙空口发给蓝牙芯片,蓝牙芯片通过PCM bus 和ADMA把音频数据送给ADSP,ADSP处理后送给AP。做bringup时有个相对的先后顺序,比如调IPC通常是最先做的,因为它不仅是核间通信,ADSP上的log以及dump音频数据等debug手段也要靠它,可以说是基础设施了,它好了才可以调其他功能。

谈谈音频开发 1497

macOS coreAudio 之 AudioQueue 播放本地音频文件

macOS CoreAudio 使用记录 之 使用AudioQueue配合AudioFile进行播放macOS 本地音频文件本文打仓库代码为:CoreAudio作为AppleAudioQueueAudioFileBufferAudioQueue。

goldWave的博客 1375

安卓audio 架构解析

• 动态分配:当物理设备(如耳机、蓝牙设备)连接或虚拟设备(如远程submix)初始化时,AudioPolicyManager通过setDeviceConnectionState()动态分配唯一的audio_port_handle_t,并注册到系统可用设备列表(如mAvailableOutputDevices或mAvailableInputDevices)中。• 动态更新:设备状态变化(如拔出耳机)会触发路由更新,系统销毁原有绑定并重新分配audio_port_handle_t到新设备(如切换到扬声器)。

aningxiaoxixi的博客 751

2.1 haas506开发教程-高级组件库-audio-Audio

haas506开发教程-高级组件库-audio 播放音频

haas506开发板 771

android audio buffer 分析

我们知道,播放audio的时候,音频数据是从AT传送到AF的,然后AF中的audiomixer来读取PCM数据做mix 下面对这个流程做大体分析。 首先,分析一下AT和AF之间传递数据使用的内存是在哪里分配的。 AT章节里面,我们分析AudioTrack::createTrack_l函数时,有这么一段代码:     sp track = audioFlinger->createTr

WAN8180192的博客 5705

Android Audio音频系统之深入浅出

音频分析

zjy764219923的专栏 5699

Python 调用pyaudio库录制以及播放wav音频文件

1.Pyaudio简介 PyAudio 是语音处理的 Python 库,提供了比较丰富的功能。 2.功能 python的Pyaud模块可以调用电脑的麦克风或音响进行录音,音频播放,生成wav文件等。 wave是录音是用的标准的WINDOWS文件格式,扩展名为WAV,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种。 3.Pyaudio安装 pip install pyaudio 4.使用P...

Python热爱者的博客 4150

Win10系统VS2019+Cmake+qhull_8.0.0环境配置

1 qhull 1.1 简要介绍 qhull是一个强大的计算几何库,可以用于计算高维的convex hull, Delaunay triangulation, Voronoi diagram等。 1.2 依赖库 qhull不依赖其他库。 1.3 源码包下载 qhull源码地址:github:https://github.com/qhull/qhull.git 2 Cmake构建项目 2.1 路径 源代码路径:D:/ThirdParty/qhull/qhull_8.0.0构建项目路径:D:/Thi.

wangchenxue的博客 2491

audio读取文件流播放音频

jsp阶段:<audio controls="controls" controlsList="nodownload"><source src="${ctx }/phone/getAudio.ce?type=3&PATHID='+mp+'" type="audio/mpeg"></audio>效果图:java部分:@Request

雨陆聪辰的博客 1万+

windows局域网文件夹共享

windows局域网共享文件夹,亲测,包括可能出现的一些问题解决

yml15180824993的博客 4万+

4.图像sensor的特性和驱动解析

例子:sensor驱动自己提供操作曝光时间的函数和获取曝光时间的函数,然后将这个函数注册到ISP库和3A算法库,3A算法库根据外部光照强度计算出一个Sensor曝光时间的设置值,ISP库得到这个设置值,然后通过Sensor之前注册的回调函数,把这个值设置到Sensor的硬件寄存器中去,实现整个过程。是为 ISP 配置正确的输入时序。(1)修改驱动源码(sambashar\Hi3518E_SDK_V1.0.3.0\package\mpp\component\isp\sensor\ar0130)

weixin_53762042的博客 3566

Android Audio知识梳理 看完这一篇就够了!

这个部分作为Android的Audio系统的输入/输出层次,一般负责播放PCM声音输出和从外部获取PCM声音,以及管理声音设备和设置,注意,解码功能不在这里实现,在android系统里音频视频的解码是 opencore 或 stagefright 完成的,在解码之后才调用音频系统的接口,创建音频流并播放。初始化各个音效对应的参数,将各音效和 对应的输入 和输出流绑定在一起,这样,当上层要初始化使用音效时,就会在对应的threadloop中调用process_l音效处理函数。

liyopt的博客 5937

基于CPCC_S_TASK_LIST_MAINTAIN的工艺路线组件批量分配实战与避坑指南

本文详细解析了SAP PP模块中基于CPCC_S_TASK_LIST_MAINTAIN函数实现工艺路线组件批量分配的实战技巧与避坑指南。针对批量分配的核心挑战,提供了参数配置、BAPI协同使用、Excel导入等解决方案,并分享了大容量数据处理优化经验,帮助用户高效完成工艺路线组件分配任务。

weixin_33563728的博客 306

Android Audio Effect

关系图。

zhang_jia_quan的博客 2270

基于PDF文档结构的数字隐写

PDF隐写

xiongshivigor的博客 1426

AI游戏制作07——波次计时器,敌人按波次生成

AI游戏制作07——波次计时器,敌人按波次生成

qq_40572023的博客 47

【Android Audio】安卓音量管理

则,使用的音量曲线为:通过/vendor/etc/audio_policy_volumes.xml查询可知,使用的为"DEFAULT_NON_MUTABLE_SPEAKER_VOLUME_CURVE"数组,路径为/vendor/etc/default_volume_tables.xml。Music 类型的hdmi arc音量存储的string为:volume_music_hmdi_arc。AUDIO_STREAM_MUSIC的UI可设置的最大音量prop为,见上图。例如:UI可设置最大音量为0-100。

... 3952

手撕数美风控三板斧:device_fingerprint/device_id/hmac生成逻辑全解析

摘要:逆向分析数美风控核心参数生成机制 本文详细记录了逆向分析数美(Shumei)风控系统中三个关键参数(device_id、device_fingerprint、hmac)的生成逻辑。通过抓包分析和动态调试(使用Frida、IDA等工具)发现:device_id由设备IMEI和Android ID经MD5哈希生成;device_fingerprint融合23项设备与环境信息,并采用SHA-256哈希和动态环境检测;hmac则是参数+指纹+动态盐值的SHA-256签名。文章揭示了数美"设备指纹+动

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1460

aosp15的audio hal的相关库情况介绍

hal对应的守护进程模拟器上audio的hal其实有一个守护进程,这个守护进程就是hidl的服务端,因为audio目前还是使用hidl进行通讯,客户端一般是AudioFlinger。这个android.hardware.audio.service进程对应的代码位置如下:核心代码主要就是这个service.cpp,当然还有肯定包含了很多的接口实现,不过一般这些实现都会有对应的so文件。

learnframework的博客 942

软件产品国际化:前后端及App多语言版本解决方案(超详细实现过程)

多语言版本解决方案是应对全球化趋势的关键策略,它通过构建灵活且可扩展的架构,支持软件产品在不同语言和文化环境下的顺畅运行与展示。此方案涵盖了前端多语言界面实现、后端多语言数据处理及大数据环境下的多语言支持等多个层面,确保公司能够高效地推出适应全球用户多样化需求的软件产品。在前端多语言界面实现方面,解决方案采用了国际化与本地化的结合方法。国际化过程确保软件的功能和代码设计能够处理多种语言和文化习惯,而本地化则针对特定地区进行界面和内容的调整。

大模型大数据攻城狮的专栏 2753

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android Audio音频系统

Audio硬件抽象层的实现在各个系统中可能是不同的,需要使用代码去继承相应的类并实现它们,作为Android系统本地框架层和驱动程序接口AudioFlinger继承了libmedia.so(Audio本地框架类)里面的接口,上层调用的只是libmedia.so部分的接口,但实际上调用的内容是libaudioflinger.so,使用JNI和Java对上层提供接口,JNI部分通过调用libmedia.so库提供的接口来实现。虽然有的类是在同一个库中实现的,但并不代表它们会在同一个进程中被调用。

sdkdlwk的博客 2968

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓音频之dumpsys audio

除了音频日志,当前的音频状态。音量,通话模式,可用音频设备,以及音频设置历史等都在AudioService中。而混音状态是在AudioFlinger中。在音频问题定位中,这些信息是很有必要的。

事后不诸葛的博客 1922

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android Audio系统框架

Android Audio系统框架

一只青木呀 5089

Android音频驱动学习(一) Audio HAL

Hal加载过程 加载audio hal需要分三步 1、hw_get_module_by_class :加载hal module 2、audio_hw_device_open:调用audio device open 3、open_output_stream:打开output DevicesFactory::loadAudioInterface(const char *if_name, audio_hw_device_t **dev)   rc = hw_get_module_by_class(AUDIO

junluoyu000的博客 2万+

Android Audio System深入探究之Audio HAL(基于Android9)

Audio Hal1. 重要接口文件分析2 HAL初始化3 openOutput流程分析3.1 Hal层设备创建3.2 AudioHwDevice分析3.3 openOutputStream分析4 Audio Hal实现分析4.1 hal层Hidl接口相关定义4.2 RK 平台 audio hal实现4.3 AudioHardware相关类关系图 1. 重要接口文件分析 Hal层分析主要涉及的接口文件 DeviceHalInterface.h AudioHwDevice.h 其中DeviceHalInt

虎哥LoveDroid 6148
上一篇: Android Permission
下一篇: Android中的android.provider.Settings.System系统属性设定
shareCode
博客等级 码龄15年 125粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值