Android Media——使用MediaPlayer播放SD卡中的音频

        MediaPlayer是Android当中开发音视频应用的一个重要组件,它不仅支持本地音视频的播放,同时也能够播放网络的音视频,支持多种音视频播放格式。这里学习使用MediaPlayer播放SD卡中的音频文件。

        按照Android第一行代码第二版的8.4敲了一遍,由于这本书是基于Android7写的,因此SD卡读取权限申请部分不适用Android10及以上版本了。因此网上查了一下,将代码调通了。

        首先manifest文件需要追加SD卡读的权限,如下图:

        onCreate部分定义3个button,然后调用verifyStoragePermissions用于申请SD卡读取权限。然后调用initMediaPlayer初始化MediaPlayer。

         在onDestroy函数中stop和release mediaPlayer,在verifyStoragePermissions函数中申请权限,如果只播放SD卡目录的歌曲申请个读权限就可以了,我也把写申请了。

        在initMediaPlayer中初期化Media,包括创建MediaPlayer,指定MediaPlay播放文件路径等。

        在onRequestPermissionsResult函数中判断如果用户拒绝了权限就弹出Toast提示用户,这个函数可以不写,不影响音乐播放。

        最后在onClick中根据不同的按键调用mediaPlayer的函数进行播放、暂停(再次播放继续播放)、和停止(再次播放从头播放)。

        在虚拟机上运行需要打开虚拟机的Device File Explorer,将music1.mp3放到sdcard/Music目录下。直接拖拽文件就放到目录下就行。

注意:

        你用哪个虚拟机就需要在哪个虚拟机的Device File Explorer中sdcard/Music目录下添加明为music1.mp3的音乐文件。

 

        加入音频文件后将虚拟机重启一下。点击Device Manager,选择虚拟机右侧的竖着的三个点,然后再选择Cold Boot Now就可以了。

        运行一下程序,就可以听到美妙动听的音乐了。

        最后介绍一下MediaPlayer常用的方法:

方法描述

getCurrentPosition( )

得到当前的播放位置

getDuration()

得到文件的时间

getVideoHeight()

得到视频高度

getVideoWidth()

得到视频宽度

isLooping()

是否循环播放

isPlaying()

是否正在播放

pause()

暂停

prepare()

准备(同步)

prepareAsync()

准备(异步)

release()

释放MediaPlayer对象

reset()

重置MediaPlayer对象

seekTo(int msec)

指定播放的位置(以毫秒为单位的时间)

setDataSource(String path)

setDataSource(FileDescriptor fd)

设置数据源

setAudioStreamType(int streamtype)

指定流媒体的类型

setDisplay(SurfaceHolder sh)

设置用SurfaceHolder来显示多媒体

setLooping(boolean looping)

设置是否循环播放

setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener)

网络流媒体的缓冲监听

setOnCompletionListener(MediaPlayer.OnCompletionListener listener)

网络流媒体播放结束监听

setOnErrorListener(MediaPlayer.OnErrorListener listener)

设置错误信息监听

setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener)

视频尺寸监听

setScreenOnWhilePlaying(boolean screenOn)

设置是否使用SurfaceHolder显示

setVolume(float leftVolume, float rightVolume)

设置音量

start()

开始播放

stop()

停止播放

Domo代码:

AndroidMedia-使用MediaPlayer播放SD卡中的音频资源-CSDN文库

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值