# 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 ```