内容正文:
第10章 多媒体播放
Android Studio 移动应用开发基础(第 2 版)
目录
10.1 播放音频
10.2 同步练习一
10.3 播放视频
10.4 同步练习二
10.1 播放音频
MediaPlayer 是 Android 多媒体框架中的重要类。通过使用 MediaPlayer 对象,Android 应用程序可以获取、解码和播放音频、视频等多媒体资源。播放的多媒体资源可以来自程序资源(存储于 res/raw 目录下,因为 Android 不会对存储于该目录下的资源进行任何处理,所以存储于该目录下的文件可以保持原样)、本地文件系统和网络。
在 Android 应用程序中播放的音频大致可以分为两类:为 Android 应用程序增加音效的简短音频和来自本地文件系统或网络的音频。对于为 Android 应用程序增加音效的简短音频,可以使用 MediaPlayer 提供的便利播放方式进行播放;对于来自本地文件系统或网络的音频,编者建议使用 MediaPlayer 提供的完整播放方式进行播放。
10.1.1 播放简短音频
MediaPlayer 提供了几种静态的 create()方法,用于创建 MediaPlayer对象:
create(Context context, int resid)方法主要用于播放存储于 res/raw 目录下的音频资源,create(Context context, Uri uri)方法主要用于播放来自任何 Uri 的音频资源。
举例说明如何使用这种方式播放简短音频。在该案例应用程序运行后,会执行一个时间长度为 4 秒的启动动画,并且同步循环播放一段音频(因为音频的时间长度少于 4 秒,所以需要循环播放),在启动动画执行完毕时,停止播放简短音频。
新建一个名为 Ch1001 的 Android 应用程序工程,并且在工程的 res 目录下分别新建名为 raw 和 anim 的子目录。在 res/raw 目录下存储一个要播放的音频文件,其文件名为 ring08.wav;
修改布局文件 res/layout/activity_main. xml 中的代码:
在 res/anim 目录下新建一个名为 my_scale.xml 的动画定义文件:
修改 MainActivity.java 文件:
10.1.2 使用 MediaPlayer 自制一个音频播放器
编写一个播放本地SD卡中音频文件的播放器应用程序,用于介绍如何使用 MediaPlayer 提供的完整播放方式播放音频。
新建一个名为 Ch1002 的 Android 应用程序工程,然后在 res/mipmap 目录下存储需要用到的图标;
修改主界面布局文件 res/layout/activity_main.xml:
修改 res/values/strings.xml 文件:
创建 ListView 组件列表项的布局文件 res/layout/list_item.xml:
新建一个名为 FileListAdapter 的 Java 类文件:
修改 MainActivity.java 文件:
为了能够播放音频文件,还需要上传一些音频文件到模拟器中:
10.2 同步练习一
将 10.1.2 节中的案例加载到 Android Studio 中并运行,然后进行如下修改。
(1)使界面更加美观。
(2)在列表中只显示能够播放的音频文件和子目录。
(3)点击手机上的返回键图标,显示当前目录的上一级目录。
10.3 播放视频
可以使用MediaPlayer播放视频,但是最好使用 Android 的 VideoView组件播放视频;
将一个 MP4 视频文件上传到模拟器的sdcard目录下:
新建一个名为 Ch1003 的 Android应用程序工程。修改 res/layout/activity_main.xml :
修改 MainActivity.java 文件:
10.4 同步练习二
修改 10.2 节中的应用程序,使其既可以播放音频文件,又可以播放视频文件
Q & A
$