android MediaPlayer 封装

参考博客

Android音乐播放模式切换-外放、听筒、耳机

已满足的需求

1、回到桌面停止播放
2、每次贴近耳朵,黑屏,从0开始播放,拿开继续从当前的时间点播放(仿微信听语音)
3、监听耳机插入拔出,同时切换到贴耳,外放
4、支持播放倍数

github,喜欢点个start

教程

添加权限

    
    
    

添加依赖

implementation 'com.github.CMzhizhe:AudioPlayManagerProject:v1.0.1'

初始化

   AudioPlayManager.Builder().setApplication(this.application).build()

播放音乐

 /**
     * @date 创建时间: 2022/11/18
     * @author gaoxiaoxiong
     * @description 打开assets文件夹下面的音乐
     * @param assetsName assets文件下的音乐文件
     * @param voiceId 用户自定义的语音ID
     * @param speed 播放倍数
     * @param playListener 播放结果回调
     */
    fun prepareAssetsAsync(assetsName: String,voiceId: String?,speed: Float = 1.0f,playListener:OnAudioPlayListener?) 

 /**
     * @param remoteUrl 服务器提供的地址
     * @param voiceId   用户自定义的ID
     * @param speed 播放倍数
     * @param playListener 播放结果监听
     * @date 创建时间: 2022/11/10
     * @author gaoxiaoxiong
     */
    fun prepareAsync(remoteUrl: String,voiceId: String?,speed: Float = 1.0f,playListener: OnAudioPlayListener?)

 /**
     * @param voiceId 用户自定义的ID
     * @param file    播放语音的文件
     * @param speed 播放倍数
     * @param playListener 播放结果监听
     * @date 创建时间: 2022/11/10
     * @author gaoxiaoxiong
     */
    fun prepareAsync(file: File,voiceId: String?,speed: Float = 1.0f,playListener: OnAudioPlayListener?)

  AudioPlayManager.getInstance().seekTo()//开始播放音乐 &&设置播放进度
    AudioPlayManager.getInstance().playSpeed//设置播放速度
    AudioPlayManager.getInstance().registerListenerProximity() //需要在activity onResume调用,目的注册感光监听
    AudioPlayManager.getInstance().unregisterListenerProximity()//需要在activity onPause调用,目的移除感光监听
    AudioPlayManager.getInstance().pause()//暂停音乐
    AudioPlayManager.getInstance().releaseAll()//停止播放,在onDestroy调用

遇到的问题

 mSensorManager.unregisterListener(this)无效,你需要转换成 mSensorManager.unregisterListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)); 解除具体的哪个传感器

总结

 mMediaPlayer.setAudioStreamType(STREAM_VOICE_CALL);//这样设置,比不设置的好处是,声音会大点

你可能感兴趣的:(android MediaPlayer 封装)