汇多多.apk(点击下载) / AudioRecorderMgr.java


package io.dcloud.feature.audio;

import android.app.Dialog;
import android.os.Build;
import io.dcloud.base.R;
import io.dcloud.common.DHInterface.IWebview;
import io.dcloud.common.adapter.util.PermissionUtil;
import io.dcloud.common.constant.DOMException;
import io.dcloud.common.util.Deprecated_JSUtil;
import io.dcloud.common.util.ErrorDialogUtil;
import io.dcloud.common.util.StringUtil;
import io.dcloud.feature.audio.recorder.AbsRecorder;
import io.dcloud.feature.audio.recorder.AudioRecorder;
import io.dcloud.feature.audio.recorder.HighGradeRecorder;
import io.dcloud.feature.audio.recorder.RecordOption;
import io.dcloud.feature.audio.recorder.RecorderUtil;

public class AudioRecorderMgr extends AbsAudio {
    private static AudioRecorderMgr mInstance;
    String mFunId;
    AbsRecorder mNativeRecorder;
    RecordOption mOption;

    private AudioRecorderMgr() {
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void failCallback(String str) {
        Deprecated_JSUtil.excCallbackError(this.mOption.mWebview, this.mFunId, StringUtil.format(DOMException.JSON_ERROR_INFO, 3, str), true);
    }

    public static boolean isPause(String str) {
        return str.equalsIgnoreCase("mp3") || str.equalsIgnoreCase("aac");
    }

    static AudioRecorderMgr startRecorder(RecordOption recordOption, String str) {
        if (mInstance == null) {
            mInstance = new AudioRecorderMgr();
        }
        AudioRecorderMgr audioRecorderMgr = mInstance;
        audioRecorderMgr.mOption = recordOption;
        audioRecorderMgr.mFunId = str;
        PermissionUtil.usePermission(recordOption.mWebview.getActivity(), "audio", PermissionUtil.PMS_RECORD, 2, new PermissionUtil.StreamPermissionRequest(mInstance.mOption.mWebview.obtainApp()) {
            /* class io.dcloud.feature.audio.AudioRecorderMgr.AnonymousClass1 */

            @Override // io.dcloud.common.adapter.util.PermissionUtil.Request
            public void onDenied(String str) {
                if (AudioRecorderMgr.mInstance != null) {
                    AudioRecorderMgr.mInstance.failCallback(DOMException.MSG_NO_PERMISSION);
                }
            }

            @Override // io.dcloud.common.adapter.util.PermissionUtil.Request
            public void onGranted(String str) {
                if (AudioRecorderMgr.mInstance != null) {
                    if (AudioRecorderMgr.isPause(AudioRecorderMgr.mInstance.mOption.mFormat)) {
                        AudioRecorderMgr.mInstance.mNativeRecorder = new HighGradeRecorder().setRecordOption(AudioRecorderMgr.mInstance.mOption);
                        if (AudioRecorderMgr.mInstance.mOption.mFormat.equalsIgnoreCase("aac") && Build.VERSION.SDK_INT < 16) {
                            AudioRecorderMgr.mInstance.failCallback(AudioRecorderMgr.mInstance.mOption.mWebview.getContext().getString(R.string.dcloud_audio_not_aac_recording));
                        } else if (!AudioRecorderMgr.mInstance.mOption.mFormat.equalsIgnoreCase("mp3") || RecorderUtil.isContainMp3()) {
                            try {
                                AudioRecorderMgr.mInstance.mNativeRecorder.start();
                            } catch (Exception e) {
                                e.printStackTrace();
                                AudioRecorderMgr.mInstance.failCallback(e.getMessage());
                                AudioRecorderMgr.mInstance.stop();
                            }
                        } else {
                            AudioRecorderMgr.mInstance.failCallback(AudioRecorderMgr.mInstance.mOption.mWebview.getContext().getString(R.string.dcloud_audio_not_mp3_recording));
                            IWebview iWebview = AudioRecorderMgr.mInstance.mOption.mWebview;
                            Dialog lossDialog = ErrorDialogUtil.getLossDialog(iWebview, AudioRecorderMgr.mInstance.mOption.mWebview.getContext().getString(R.string.dcloud_audio_no_mp3_module_added) + " https://ask.dcloud.net.cn/article/35058", "https://ask.dcloud.net.cn/article/35058", "audio");
                            if (lossDialog != null) {
                                lossDialog.show();
                            }
                        }
                    } else {
                        AudioRecorderMgr.mInstance.mNativeRecorder = new AudioRecorder(AudioRecorderMgr.mInstance.mOption);
                        try {
                            AudioRecorderMgr.mInstance.mNativeRecorder.start();
                        } catch (Exception e2) {
                            e2.printStackTrace();
                            AudioRecorderMgr.mInstance.failCallback(e2.getMessage());
                            AudioRecorderMgr.mInstance.stop();
                        }
                    }
                }
            }
        });
        return mInstance;
    }

    public void pause() {
        RecordOption recordOption;
        AudioRecorderMgr audioRecorderMgr = mInstance;
        if (audioRecorderMgr != null && (recordOption = audioRecorderMgr.mOption) != null && isPause(recordOption.mFormat)) {
            mInstance.mNativeRecorder.pause();
        }
    }

    public void resume() {
        RecordOption recordOption;
        AudioRecorderMgr audioRecorderMgr = mInstance;
        if (audioRecorderMgr != null && (recordOption = audioRecorderMgr.mOption) != null && isPause(recordOption.mFormat)) {
            mInstance.mNativeRecorder.resume();
        }
    }

    public void stop() {
        AbsRecorder absRecorder;
        AudioRecorderMgr audioRecorderMgr = mInstance;
        if (!(audioRecorderMgr == null || (absRecorder = audioRecorderMgr.mNativeRecorder) == null)) {
            absRecorder.stop();
            mInstance.mNativeRecorder.release();
            mInstance.mNativeRecorder = null;
        }
        mInstance = null;
    }

    /* access modifiers changed from: package-private */
    public void successCallback() {
        RecordOption recordOption = this.mOption;
        Deprecated_JSUtil.excCallbackSuccess(this.mOption.mWebview, this.mFunId, recordOption.mWebview.obtainFrameView().obtainApp().convert2RelPath(recordOption.mFileName));
    }
}