fix
lmw
2024-11-09 d1a9e3312387b6c47e6186af506787a8a66369d1
app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java
@@ -27,6 +27,8 @@
    private float volume = 0.5f; //播放音量
    private String audio = "";//音源
    /**
     * 文件存储默认sdcard/record
     */
@@ -204,10 +206,60 @@
        public void onStartPlay();
        public void onFinishPlay();
        public void onGetDuration(int duration);
    }
    //开始播放录音
    /**
     * 开始播放音频
     * @param context
     * @param filePath
     */
    public void startPlayMusic(Context context, String filePath) {
        if (mMediaPlayer != null) {
            stopPlayMusic();
        }
        mMediaPlayer = new MediaPlayer();
        mMediaPlayer.setVolume(volume,volume);
        try {
            Log.e("mmp", "path:" + filePath);
            mMediaPlayer.setDataSource(context, Uri.parse(filePath));
            mMediaPlayer.prepareAsync();
            mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    // 装载完毕回调
                    mMediaPlayer.start();
                    if (audioStatusUpdateListener != null){
                        audioStatusUpdateListener.onGetDuration(mMediaPlayer.getDuration());
                        audioStatusUpdateListener.onStartPlay();
                    }
                }
            });
            mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    stopPlayMusic();
//                    BaseEvent baseEvent = new BaseEvent(BaseEvent.SEND_AODIO_PLAY_OVER);
//                    baseEvent.setMsg(filePath);
//                    EventBus.getDefault().post(baseEvent);
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 循环播放音频
     * @param context
     * @param filePath
     */
    public void loopPlayMusic(Context context, String filePath) {
        if (mMediaPlayer != null) {
            stopPlayMusic();
        }
@@ -229,15 +281,24 @@
            mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    stopPlayMusic();
//                    BaseEvent baseEvent = new BaseEvent(BaseEvent.SEND_AODIO_PLAY_OVER);
//                    baseEvent.setMsg(filePath);
//                    EventBus.getDefault().post(baseEvent);
                    mMediaPlayer.start();
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void pause(){
        if (mMediaPlayer != null) {
            mMediaPlayer.pause();
        }
    }
    public void resume(){
        if (mMediaPlayer != null) {
            mMediaPlayer.start();
        }
    }
@@ -248,6 +309,13 @@
        }
    }
    public int getCurrentPosition(){
        if (mMediaPlayer!=null){
            return mMediaPlayer.getCurrentPosition();
        }
        return 0;
    }
    //结束录音播放
    public void stopPlayMusic() {
        if (mMediaPlayer == null)
@@ -255,9 +323,9 @@
        try {
            mMediaPlayer.stop();
            mMediaPlayer.release();
            mMediaPlayer = null;
            if (audioStatusUpdateListener != null)
                audioStatusUpdateListener.onFinishPlay();
            mMediaPlayer = null;
        } catch (IllegalStateException e) {
            e.printStackTrace();
        }