Android的音视频处理
音频Audio和视频Video
音视频支持框架
需要设备底层具有音视频相关的硬件设备和驱动支持,为了适应各种音视频设备,抽象了2个层次。
第一层:音频硬件抽象层,向上提供统一的音视频操作接口,屏蔽不同硬件设备的实现细节差异。
在该层之上,增加音频控制层,运行在独立的线程内,用RPC与上层通信,将不同的音轨混合起来,输入到硬件中。
音视频中的解码编码、进度控制油开源项目OpenCORE支持,在框架层,media包封装了OpenCORE实现,
音视频播放
MediaPlayer
MediaPlayer.setDataSource MediaPlayer.prepare MediaPlayer.start
MediaPlayer.setDataSource后,音视频播放进入初始化状态,系统没读取音视频数据;MediaPlayer.prepare后,才能开始播放。MediaPlayer.pause暂停; MediaPlayer.stop停止
MediaPlayer.prepareAsync异步播放
音视频的录制
MediaRecoder
MediaRecoder.setAudioSource MediaRecoder.setOutputFromat
MediaRecoder.setAudioEncoder MediaRecoder.setoutputFile
MediaRecoder.prepare MediaRecoder.start