# SoundRecorderDemo
**Repository Path**: alpcontrol/SoundRecorderDemo
## Basic Information
- **Project Name**: SoundRecorderDemo
- **Description**: 通用语音插件和图片插件一样,支持批量添加录音。
- **Primary Language**: Android
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-12-09
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SoundRecorderDemo
#### 介绍
通用语音插件和图片插件一样,支持批量添加录音。
#### 使用说明
1. 添加依赖项
```
dependencies {
implementation 'com.gitee.alpcontrol:SoundRecorderDemo:Tag'
}
```
2. 清单配置文件中声明权限以及Service
```
...
...
```
3. 权限申请以及基础调用
```
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//手动申请权限,防止权限未开启
checkPermission();
//设置图片数量
PickerConfig config = new PickerConfig()
.setPickerMaxNum(3)
.setPickerNumColumns(3);
//标题,语音控件时间
pickerFragment = AudioFragment.newInstance("语音附件", 60).initConfig(config);
getSupportFragmentManager().beginTransaction().replace(R.id.fr_content_image,
pickerFragment)
.commit();
}
/**
* 权限申请
*/
private void checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE};
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, permissions, 200);
return;
}
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && requestCode == 200) {
for (int i = 0; i < permissions.length; i++) {
if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivityForResult(intent, 200);
return;
}
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//清空音频文件(操作完一定要清空文件。否则会导致内存占用)
pickerFragment.clearAudioFile();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 200) {
checkPermission();
}
}
```
4. 设置控件颜色,根据应用实际颜色进行优化
```
app - colors.xml
#DAF6FE
#B2E6FC
#FF84AD
#45C3E5
#666666
```