欢迎来到天天文库
浏览记录
ID:59522749
大小:200.70 KB
页数:27页
时间:2020-11-06
《手机开发培训 07_Android的Audio系统.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android的Audio系统Android的Audio系统第一部分Audio系统综述第二部分Audio系统和上层接口第三部分Audio的硬件抽象层第一部分Audio系统综述Audio系统在Android中负责音频方面的数据流传输和控制功能,也负责音频设备的管理。Audio系统主要的分成几个层次:1.media中库提供的Audio系统的上层接口2.AudioFlinger作为Audio系统的中枢3.Audio库的硬件抽象层提供底层的支持4.Audio接口通过JNI和Java框架提供给上层A
2、udio系统的上层接口主要提供了两方面的功能:放音(Track)和录音(Recorder)。第一部分Audio系统综述JavaAudioClassJava框架AudioJNIAudio本地APIAudioFlinger(libaudioflinger.so)AudioHardwareInterfacelibmediaAudioAudioAudioRecorderSystemTrackAudioHALAudioA2dp(libaudio.so)GenericC框架内核空间AudioDriver/d
3、ev/eac第一部分Audio系统综述Media库(libmedia.so)的Audio部分的目录中:frameworks/base/include/media/frameworks/base/media/libmedia/这部分的内容被编译成库libmedia.so,提供Audio部分的接口。AudioFlinger(libaudioflinger.so):frameworks/base/libs/audioflinger这部分内容被编译成库libaudioflinger.so。第一部分Aud
4、io系统综述Audio的JNI部分:frameworks/base/core/jniAudio的JAVA部分:frameworks/base/media/java/android/media主要包含AudioManager和Audio系统的几个类。Audio硬件抽象层的接口:hardware/libhardware_legacy/include/hardware/第二部分Audio系统和上层接口2.1Audio系统的各个层次2.2media库中的Audio框架部分2.3AudioFlinger本
5、地代码2.4Audio系统的JNI代码2.5Audio系统的Java代码2.1Audio系统的各个层次Audio系统的结构:libmedia.so提供Audio接口,这些Audio接口既像上层开放,也向本地代码开发。libaudiofilnger.so提供Audio接口实现。Audio硬件抽象层提供到硬件的接口,供AudioFlinger调用。Audio使用JNI和JAVA对上层提供接口。2.1Audio系统的各个层次Audio管理环节Audio输出Audio输入Java层AudioSy
6、stemAudioTrackAudioRecorder本地框架层AudioSystemAudioTrackAudioRecorderAudioFlingerIAudioFlingerIAudioTrackIAudioRecorder硬件抽象层AudioHardwareInterfaceAudioStreamOutAudioStreamIn2.2media库中的Audio框架部分Android的Audio的核心框架在media库中提供,其中对上面主要实现AudioSystem、AudioTrack
7、和AudioRecorder三个类。提供了IAudioFlinger类接口,在这个类中,可以获得IAudioTrack和IAudioRecorder两个接口,分别用于声音的播放和录制。AudioTrack和AudioRecorder分别通过调用IAudioTrack和IAudioRecorder来实现。2.2media库中的Audio框架部分AudioSystemIAudioFlinger+setXXX()+createTrack()+getXXX()+openRecord()+register
8、Client()AudioTrack-mAudioTrackBnAudioFlinger+start()IAudioTrack+stop()+flush()+pause()+write()BnAudioTrackIAudioFlingerClientAudioRecord-mAudioRecord+start()BnAudioFlingerClient+stop()+flush()IAudioRecord+pause()+read()BnAudioRecord2.2media库中的Audio框架
此文档下载收益归作者所有