为了节约手机的存储空间,在听音乐时可以以网络下载的方式播放MP3。接下来将通过一个具体实例的实现过程,详细讲解使用MediaPlayer播放网络中MP3的流程。
在本实例中插入了4个Button按钮,分别用于播放、暂停、重新播放和停止处理。执行后通过Runnable发起运行线程,在线程中远程下载指定的MP3文件,下载功能是通过网络传输的方式下载的。下载完毕后将文件临时保存到SD卡中,这样可以通过4个按钮对其进行控制。当程序关闭后,删除SD卡中的临时性文件。
实例文件example.java的具体实现流程如下所示。
(1)定义currentFilePath用于记录当前正在播放MP3的URL地址,定义currentTemp FilePath表示当前播放MP3的路径。具体代码如下。
2)使用strVideoURL设置要播放MP3文件的网址,并设置透明度。具体代码如下
3)编写单击“播放”按钮所触发的处理事件,具体代码如下
4)编写单击“重播”按钮所触发的处理事件,具体代码如下
5)编写单击“暂停”按钮所触发的处理事件,具体代码如下
6)编写单击“停止”按钮所触发的处理事件,具体代码如下
7)定义方法playVideo(final String strPath)来播放指定的MP3文件,其播放的是存储卡中暂时保存的MP3文件,具体代码如下。
8)编写setOnErrorListener来监听错误处理,具体代码如下
(www.xing528.com)
9)编写setOnBufferingUpdateListener来监听MediaPlayer缓冲区的更新,具体代码如下
10)编写setOnCompletionListener来监听播放完毕所触发的事件,具体代码如下
11)编写setOnPreparedListener来监听开始阶段的事件,具体代码如下
12)将文件存到SD卡后,通过方法mMediaPlayer01.start()播放MP3。具体代码如下
13)如果有异常则输出提示,具体代码如下
14)定义函数setDataSource用于存储URL的MP3文件到存储卡。首先判断传入的地址是否为URL,然后创建URL对象和临时文件。具体代码如下。
15)定义方法getFileExtension(String strFileName)获取音频文件的扩展名,如果无法顺利获取扩展名,则默认为“.dat”。具体代码如下。
16)定义方法delFile(String strFileName)设置当离开程序时删除临时音乐文件,具体代码如下。
执行后可以通过播放、暂停、重新播放和停止四个按钮控制指定的MP3音乐,如图7-4所示。
图7-4 执行效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。