Android 系统支持三种不同来源的音频播放:
1)本地资源
存储在应用程序中的资源,例如存储在 RAW 文件夹下的媒体文件,只能被当前应用程序访问。
2)外部资源
存储在文件系统中的标准媒体文件,例如存储在 SD 卡中的文件,可以被所有应用程序访问。
3)网络资源
通过网络地址取得的数据流(URL),例如“http://www.musiconline.com/classic/007. mp3”,可以被所有应用程序访问。
Android N 支持的音频格式如表 1 所示。
格式/编码 | 支持的文件类型 |
---|---|
AACLC/LTP |
3GPP(.3gp) MPEG-4(.mp4,.m4a) ADTS raw AAC MPEG-TS(.ts,not seekable,Android3.0+) |
HE-AACv1(AAC+) | |
HE-AACv2(enhanced AAC+) | |
AMB-NB | 3GPP(.3gp) |
AMR-WB | 3GPP(.3gp) |
FLAC | FLAC(.flac)only |
MP3 | MP3(.mp3) |
MIDI |
Type 0 and 1(.mid,.xmf,.mxmf) RTTTL/RTX(.rtttl,rtx) OTA(.ota) iMelody(.imy) |
Vorbis |
Ogg(.ogg) Matroska |
PCM/WAVE | WAVE(.wav) |
实例 MediaPlayerAudioDemo 演示了分别播放三种类型的资源的方法。
该实例中 MediaPlayerAudioActivity 向 Intent 对象中传入要载入的资源类型,并通过该 Intent 启动用于播放音乐的 Activity:PlayAudio。PlayAudio 根据传入的参数分别获取对应的音乐资源并且播放。
实例 MediaPlayerAudioDemo 的运行效果如图 1 所示。