人人折团购导航,复旦邮箱,明天以后生命多渺小
音频部分一直是linux/android开发的难点之一。
linux早期使用的音频是oss(open sound system),由于种种原因(大家可以google),目前广泛使用的是alsa(advanced linux sound architecture),alsa是一个开源项目。
android音频框架的结构图如下所示:
(1)application: 音频系统的最上层,它由app程序调用系统的api类实现音乐播放器、游戏声音、音效、录音等,这些api类主要有mediaplayer,mediarecorder,audiotrack,audiorecord等。
(2)framework:实现api类和服务管理类mediaservice,audiosystem,audiomanager。这些类用java语音实现,代码放在frameworks/base/media/java/android/media下,在内部实现时很多是简单地调用了libraries的代码。
(3)libraries:包括c\c++实现的jni代码,重要的有audioflinger,audioplicyservice,audiomixer等。代码放在frameworks/av/media/libmedia。
(4)hal层:实现audio_hw_device和audio_policy_hal,实现与alsa的音频接口,实现音频路径的创建和连接。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android Manifest中meta-data扩展元素数据的配置与获取方式
Android实现获取meta-data和build.gradle的值
Android获取清单文件中的meta-data,解决碰到数值为null的问题
解决webview 第二次调用loadUrl页面不刷新的问题
解决Android WebView拦截url,视频播放加载失败的问题
Android webview加载https链接错误或无响应的解决
网友评论