[小白裝逼]Android 語音錄製及播放的處理---AudioH

AudioH

Android 語音錄製及播放的處理,基於MediaPlayer(播放) 和MediaRecorder (錄製)

github地址:https://github.com/lewis-v/AudioH

實現功能

1.實現Android語音錄製的功能(目前封裝只支持AMR格式);

2.實現Android語音播放功能(聽筒和揚聲器播放);

3.實現語音播放中,網絡語音的緩存;

4.提供獲取緩存大小和清理緩存的方法;

使用方法

1.導入依賴

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }


    dependencies {
            compile 'com.github.lewis-v:AudioH:1.0.0'
    }

2.錄音

 RecoderBuilder builder = new DefaultRecoderBuilder()
                .setMAX_LENGTH(60*1000)//最大錄音60秒
                .setMIN_LENGTH(500)//最小錄音0.5秒
                .setSAMPLEING_RATE(200)//錄音監聽回調間隔,200ms回調一次
                .setSaveFolderPath(Environment.getExternalStorageDirectory()+"/record/");
        AudioRecoderManager.getInstance()//獲取單例
                .setAudioRecoderData(builder.create())//設置自定義配置,已有默認的配置,可不用配置
                .setAudioRecoderListener(new AudioRecoderListener() {//設置監聽
                    @Override
                    public void onStart() {//開始播放

                    }

                    @Override
                    public void onStop(AudioRecoderData audioRecoderData) {//停止/結束播放
                        Log.e(TAG,audioRecoderData.getFilePath());
                    }

                    @Override
                    public void onFail(Exception e, String msg) {//錄音時出現的錯誤
                        e.printStackTrace();
                    }

                    @Override
                    public void onCancel() {//錄音取消

                    }

                    @Override
                    public void onSoundSize(int level) {//錄音時聲音大小的回調,分貝
                        Log.e(TAG,"level:"+level);
                    }
                });

  AudioRecoderManager.getInstance().start(this);//開始錄音
  AudioRecoderManager.getInstance().stop(this);//結束錄音

3.播放

AudioPlayManager.getInstance().init(this)//初始化播放
                .setPlayListener(new AudioPlayListener() {//設置播放監聽
            @Override
            public void onPlay(String audioPath) {//開始播放

            }

            @Override
            public void onProgress(int progress, int maxSize) {//播放進度(未實現)

            }

            @Override
            public void onPause() {//播放暫停(未實現)

            }

            @Override
            public void onStop() {//停止播放

            }

            @Override
            public void onFail(Exception e, String msg) {//播放時出錯

            }
        });


   AudioPlayManager.getInstance().play("http://39.108.236.30:47423/audio/UP699813445282012.amr"
                                ,this, AudioPlayMode.MEGAPHONE);//播放音頻,放心這段音頻是我朋友的聲音。。嘻嘻

4.緩存獲取及清理

緩存清理的方法未做線程處理,是同步進行的方法,需要開發者自己開子線程調用

 Log.e(TAG, String.valueOf(AudioPlayManager.getInstance().getCacheSize(this)));//獲取緩存大小
 Log.e(TAG, String.valueOf(AudioPlayManager.getInstance().clearCache(this)));//清除緩存,並返回清除的大小
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章