Skip to content

Commit d19f89e

Browse files
committed
处理dp<0情况,提示内录权限问题
1 parent 4b83165 commit d19f89e

File tree

5 files changed

+26
-4
lines changed

5 files changed

+26
-4
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@
66
3. 实时获取录音的音量、及录音byte数据
77
4. 获取wav/mp3录音文件的时长
88
5. 可配置录音的采样率、位宽 (v1.04更新)
9-
5. 录音可视化 (v1.05更新)
10-
5. 音源支持内录(Android10及以上版本支持) (v1.09更新
9+
6. 录音可视化 (v1.05更新)
10+
7. 音源支持内录(Android10及以上版本支持) (v1.10更新
1111

1212
### 博客
1313
https://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

app/src/main/java/com/zlw/audio_recorder/MainActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import androidx.activity.result.contract.ActivityResultContract;
2121
import androidx.annotation.Nullable;
2222

23+
import com.blankj.utilcode.util.ToastUtils;
2324
import com.yanzhenjie.permission.AndPermission;
2425
import com.yanzhenjie.permission.runtime.Permission;
2526
import 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

app/src/main/java/com/zlw/audio_recorder/TestHzActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import androidx.activity.ComponentActivity;
1818

19+
import com.blankj.utilcode.util.ToastUtils;
1920
import com.yanzhenjie.permission.AndPermission;
2021
import com.yanzhenjie.permission.runtime.Permission;
2122
import 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

recorderlib/src/main/java/com/zlw/main/recorderlib/recorder/RecordHelper.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff 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())

recorderlib/src/main/java/com/zlw/main/recorderlib/recorder/listener/RecordResultListener.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)