Android音视频开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 多媒体播放组件(Android、iOS)

Android多媒体播放组件包含MediaPlayer、MediaCodec、OMX、StageFright、AudioTrack等,下面分别进行介绍。

• MediaPlayer:播放控制。

• MediaCodec:音视频编解码。

• OMX:多媒体部分采用的编解码标准。

• StageFright:它是一个框架,替代之前的OpenCore,主要做了一个OMX层,仅仅对OpenCore的omx-component部分做了引用。StageFright是在MediaPlayerService这一层加入的,和OpenCore是并列的。StageFright在Android中是以共享库的形式存在的(libstagefright.so),其中的module——NuPlayer/AwesomePlayer可用来播放音视频。NuPlayer/AwesomePlayer提供了许多API,可以让上层的应用程序(Java/JNI)调用。

• AudiTrack:音频播放。

iOS多媒体播放组件包含VideoToolBox、AudioToolBox、AVPlayer等,下面分别进行介绍。

• VideoToolBox:它是一个底层框架,提供对硬件编码器和解码器的直接访问。它为视频压缩和解压缩提供服务,并用于CoreVideo像素缓冲区中存储的栅格之间的转换。这些服务是以会话对象的形式(压缩、解压缩和像素传输),作为核心基础(CF)类型提供的。不需要直接访问硬件编码器和解码器的应用程序都不需要直接使用VideoToolBox。

• AudioToolBox:这个框架可以将比较短的声音注册到System Sound服务上。注册到System Sound服务上的声音被称为System Sounds。它必须满足下面几个条件。

▪ 播放时间不能超过30s。

▪ 数据必须是PCM或者IMA4流格式的。

▪ 必须被打包成下面3种格式之一:Core Audio Format(.caf)、Waveform Audio(.wav)或者Audio Interchange File(.aiff)。

• AVPlayer:AVPlayer既可以用来播放音频也可以用来播放视频,在使用AVPlayer的时候,我们需要导入AVFoundation.framework框架,再引入头文件#import<AVFoundation/AVFoundation.h>。