File tree Expand file tree Collapse file tree 5 files changed +26
-4
lines changed
app/src/main/java/com/zlw/audio_recorder
recorderlib/src/main/java/com/zlw/main/recorderlib/recorder Expand file tree Collapse file tree 5 files changed +26
-4
lines changed Original file line number Diff line number Diff line change 663 . 实时获取录音的音量、及录音byte数据
774 . 获取wav/mp3录音文件的时长
885 . 可配置录音的采样率、位宽 (v1.04更新)
9- 5 . 录音可视化 (v1.05更新)
10- 5 . 音源支持内录(Android10及以上版本支持) (v1.09更新 )
9+ 6 . 录音可视化 (v1.05更新)
10+ 7 . 音源支持内录(Android10及以上版本支持) (v1.10更新 )
1111
1212### 博客
1313https://www.jianshu.com/p/c0222de2faed
1414
15+ ### 演示视频
16+ https://www.bilibili.com/video/BV1ikCCBREuJ/?vd_source=ec0fc1b63e4c5db56b1eca157710edd7
17+
1518### Gradle
1619[ ![ ] ( https://jitpack.io/v/zhaolewei/ZlwAudioRecorder.svg )] ( https://jitpack.io/#zhaolewei/ZlwAudioRecorder )
1720
Original file line number Diff line number Diff line change 2020import androidx .activity .result .contract .ActivityResultContract ;
2121import androidx .annotation .Nullable ;
2222
23+ import com .blankj .utilcode .util .ToastUtils ;
2324import com .yanzhenjie .permission .AndPermission ;
2425import com .yanzhenjie .permission .runtime .Permission ;
2526import com .zlw .audio_recorder .base .MyApp ;
@@ -227,6 +228,11 @@ public void onSoundSize(int soundSize) {
227228 public void onResult (File result ) {
228229 Toast .makeText (MainActivity .this , "录音文件: " + result .getAbsolutePath (), Toast .LENGTH_SHORT ).show ();
229230 }
231+
232+ @ Override
233+ public void onError (String errorMsg ) {
234+ ToastUtils .showLong ("Error:" + errorMsg );
235+ }
230236 });
231237 recordManager .setRecordFftDataListener (new RecordFftDataListener () {
232238 @ Override
Original file line number Diff line number Diff line change 1616
1717import androidx .activity .ComponentActivity ;
1818
19+ import com .blankj .utilcode .util .ToastUtils ;
1920import com .yanzhenjie .permission .AndPermission ;
2021import com .yanzhenjie .permission .runtime .Permission ;
2122import com .zlw .audio_recorder .base .MyApp ;
@@ -147,6 +148,11 @@ public void onError(String error) {
147148 public void onResult (File result ) {
148149 Toast .makeText (TestHzActivity .this , "录音文件: " + result .getAbsolutePath (), Toast .LENGTH_SHORT ).show ();
149150 }
151+
152+ @ Override
153+ public void onError (String errorMsg ) {
154+ ToastUtils .showLong ("Error:" + errorMsg );
155+ }
150156 });
151157 recordManager .setRecordFftDataListener (new RecordFftDataListener () {
152158 @ Override
Original file line number Diff line number Diff line change @@ -237,7 +237,10 @@ private int getDb(byte[] data) {
237237 sum += data [i ] * data [i ];
238238 }
239239 ave = sum / (length - offsetStart );
240- return (int ) (Math .log10 (ave ) * 20 );
240+ int db = (int ) (Math .log10 (ave ) * 20 );
241+ // BugFix 声音结束阶段数据为-MAX_INT, 数据应展示为0;
242+ if (db < 0 ) db = 0 ;
243+ return db ;
241244 }
242245
243246 private void initMp3EncoderThread (int bufferSize ) {
@@ -262,7 +265,8 @@ private class AudioRecordThread extends Thread {
262265 if (currentConfig .getSource () == RecordConfig .SOURCE_SYSTEM
263266 && android .os .Build .VERSION .SDK_INT >= android .os .Build .VERSION_CODES .Q ) {
264267 if (RecordManager .getInstance ().getMediaProjection () == null ) {
265- throw new NullPointerException ("Error: RecordManager.getInstance().getMediaProjection() is null" );
268+ recordResultListener .onError ("请授予屏幕权限!" );
269+ return ;
266270 }
267271 AudioFormat audioFormat = new AudioFormat .Builder ()
268272 .setEncoding (currentConfig .getEncodingConfig ())
Original file line number Diff line number Diff line change @@ -13,4 +13,7 @@ public interface RecordResultListener {
1313 * @param result 录音文件
1414 */
1515 void onResult (File result );
16+
17+
18+ void onError (String errorMsg );
1619}
You can’t perform that action at this time.
0 commit comments