MediaPlayer播放不同来源的音频文件:
一、播放应用的资源文件
1.调用MediaPlayer的create(Context context , int resid)方法加载指定资源文件。
2.调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。
注:音频资源文件一般放在Android应用的/res/raw目录下。
二、播放应用的原始资源文件
1.调用Context的getAssets()方法获取应用的AssetManager。
2.调用AssetManager对象的openFd(String name)方法打开指定的原生资源,该方法返回一个AssetFileDescriptor对象。
3.调用AssetFileDescriptor的getFileDescriptor()、getStartOffset()和getLength()方法来获取音频文件的FileDescriptor、开始位置、长度等。
4.创建MediaPlayer对象,并调用MediaPlayer对象的setDataResource(FileDescriptor fd , long offset ,long length )方法来装载音频资源。
5.调用MediaPlayer对象的prepare()方法准备音频。
6.调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。
注:虽然MediaPlayer提供了setDataSource(FileDescriptor fd)方法来装载指定音频资源,但实际使用时这个方法似乎有问题:不管程序调用openFf(String name)方法
时指定打开哪个原始资源,MediaPlayer将总是播放第一个原始的音频资源。
三、播放外部存储器上音频文件。
1.创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(String path)方法装载指定音频文件。
2.调用MediaPlayer对象的prepare()方法准备音频。
3。调用MediaPlayer的start()、stop()等方法控制播放即可。
四、播放来自网络的音频文件
播放来自网络的音频文件有两种方式:
1.直接使用MediaPlayer的静态create(Context context , Uri uri)方法;
2.调用MediaPlayer的setDataSource(Context context Uri uri)装载指定Uri对应的音频文件。
以第二种方式播放来自网络的音频文件的步骤:
1.根据网络上的音频文件所在的位置创建Uri对象。
2.创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(Context context ,Uri uri)方法装载Uri对应的音频文件。
3.调用MediaPlayer对象的prepare()方法准备音频。
4.调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。