Skip to content

Commit

Permalink
update version = 1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
shaoshuai904 committed Jan 6, 2022
1 parent 3bbb28d commit fb6a346
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 78 deletions.
74 changes: 31 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
# RecordWav


[![API](https://img.shields.io/badge/API-14%2B-green.svg?style=flat)](https://android-arsenal.com/api?level=14)
[![Version](https://jitpack.io/v/shaoshuai904/RecordWav.svg)](https://jitpack.io/#shaoshuai904/RecordWav)

[下载demo.apk](https://github.com/shaoshuai904/RecordWav/blob/master/screens/app_v1.0.3_13.apk?raw=true)

[下载demo.apk](/screens/app_v1.1.0_15.apk?raw=true)

`录制``播放``解析` 于一体的wav文件的工具类。

功能包括:

- 录制
- 录制`wav`/`pcm`文件。(开始、暂停、继续、完成)
- 两种模式:`普通模式` (全录制),`跳过静默区域模式` (只录有声部分)
- 录制`wav`/`pcm`文件。(开始、暂停、继续、完成)
- 两种模式:`普通模式` (全录制),`跳过静默区域模式` (只录有声部分)
- 播放`wav`文件。(自定义播放、系统播放)
- 解析本地`wav`文件的信息


![show_recorder](/screens/show_02.png)


### 快速使用

**Step 1.** Add it in your root build.gradle at the end of repositories:
Expand All @@ -39,57 +35,49 @@

```groovy
dependencies {
implementation 'com.github.shaoshuai904:RecordWav:1.0.3'
implementation 'com.github.shaoshuai904:RecordWav:1.1.0'
}
```


### 示例代码
### 示例代码

构造参数:[ 文件保存路径 + 参数配置 + 各类监听回调(音频数据块拉取监听/沉默监听) ]
方法:startRecording pauseRecording resumeRecording stopRecording


获取普通录音机(java)

```java
Recorder recorder;
recorder = MsRecorder.wav(
new File(voicePath),
new AudioRecordConfig(),
new PullTransport.Default()
.setOnAudioChunkPulledListener(new PullTransport.OnAudioChunkPulledListener() {
@Override
public void onAudioChunkPulled(AudioChunk audioChunk) {
Log.e("数据监听", "amplitude: " + audioChunk.maxAmplitude());
}
})

);

recorder.startRecording(); // 开始
recorder.pauseRecording(); // 暂停
recorder.resumeRecording(); // 重新开始
recorder.stopRecording(); // 结束

Recorder recorder;
recorder = MsRecorder.wav(
new File("savePath"),
new AudioRecordConfig(),
new PullTransport.Default()
.setOnAudioChunkPulledListener(new PullTransport.OnAudioChunkPulledListener() {
@Override
public void onAudioChunkPulled(AudioChunk audioChunk) {
Log.d("数据监听", "最大值: " + audioChunk.maxAmplitude());
}
})
);

recorder.startRecording(); // 开始
recorder.pauseRecording(); // 暂停
recorder.resumeRecording(); // 重新开始
recorder.stopRecording(); // 结束
```

获取降噪录音机,跳过沉默区,只录"有声音"的部分(kotlin)

```java
MsRecorder.wav(
File(getVoicePath()),
AudioRecordConfig(),
// AudioRecordConfig(MediaRecorder.AudioSource.MIC, AudioFormat.ENCODING_PCM_16BIT, AudioFormat.CHANNEL_IN_MONO, 44100),
PullTransport.Noise()
// 数据监听
.setOnAudioChunkPulledListener { audioChunk ->
Log.e("数据监听", "最大值 : ${audioChunk.maxAmplitude()} ")
}
// 沉默监听
.setOnSilenceListener { silenceTime, discardTime ->
Log.e("降噪模式", "沉默时间:$silenceTime ,丢弃时间:$discardTime")
})
MsRecorder.wav(
File("savePath"),
AudioRecordConfig(),
PullTransport.Noise().setOnAudioChunkPulledListener { audioChunk ->
Log.d("maple_log", "最大值 : ${audioChunk.maxAmplitude()} ")
}.setOnSilenceListener { silenceTime, discardTime ->
Log.e("降噪模式", "沉默时间:$silenceTime ,丢弃时间:$discardTime")
}
)
```


Expand Down
66 changes: 33 additions & 33 deletions app/src/main/java/com/maple/recordwav/ui/RecordPage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -150,32 +150,32 @@ class RecordPage : BaseFragment() {
// 获取普通录音机
private fun getRecorder(): Recorder {
return MsRecorder.wav(
File(getVoicePath()),
recordConfig,
// AudioRecordConfig(MediaRecorder.AudioSource.MIC, AudioFormat.ENCODING_PCM_16BIT, AudioFormat.CHANNEL_IN_MONO, 44100),
PullTransport.Default()// 普通录音模式
.setOnAudioChunkPulledListener { audioChunk ->
Log.d("maple_log", "最大值 : ${audioChunk.maxAmplitude()} ")
animateVoice((audioChunk.maxAmplitude() / 200.0).toFloat())
}
File(getVoicePath()),
recordConfig,
// AudioRecordConfig(MediaRecorder.AudioSource.MIC, AudioFormat.ENCODING_PCM_16BIT, AudioFormat.CHANNEL_IN_MONO, 44100),
// 普通录音模式
PullTransport.Default().setOnAudioChunkPulledListener { audioChunk ->
Log.d("数据监听", "最大值 : ${audioChunk.maxAmplitude()} ")
animateVoice((audioChunk.maxAmplitude() / 200.0).toFloat())
}
)
}

// 获取降噪录音机,跳过沉默区,只录"有声音"的部分
private fun getNoiseRecorder(): Recorder {
return MsRecorder.wav(
File(getVoicePath()),
recordConfig,
PullTransport.Noise()// 跳过静音区
.setOnAudioChunkPulledListener { audioChunk ->
Log.d("maple_log", "最大值 : ${audioChunk.maxAmplitude()} ")
animateVoice((audioChunk.maxAmplitude() / 200.0).toFloat())
}
.setOnSilenceListener { silenceTime, discardTime ->
val message = "沉默时间:$silenceTime ,丢弃时间:$discardTime"
Log.d("maple_log", message)
T.showShort(mContext, message)
})
File(getVoicePath()),
recordConfig,
// 跳过静音区
PullTransport.Noise().setOnAudioChunkPulledListener { audioChunk ->
Log.d("数据监听", "最大值 : ${audioChunk.maxAmplitude()} ")
animateVoice((audioChunk.maxAmplitude() / 200.0).toFloat())
}.setOnSilenceListener { silenceTime, discardTime ->
val message = "沉默时间:$silenceTime ,丢弃时间:$discardTime"
Log.d("降噪模式", message)
T.showShort(mContext, message)
}
)
}

// 录音文件存储名称
Expand All @@ -192,10 +192,10 @@ class RecordPage : BaseFragment() {
return
}
binding.ivVoiceImg.animate()
.scaleX(1 + maxPeak)
.scaleY(1 + maxPeak)
.setDuration(10)
.start()
.scaleX(1 + maxPeak)
.scaleY(1 + maxPeak)
.setDuration(10)
.start()
}

// 显示录音参数配置窗口
Expand All @@ -215,14 +215,14 @@ class RecordPage : BaseFragment() {
}
}
MsPopup(mContext, ViewGroup.LayoutParams.MATCH_PARENT)
.setContextView(configView)
.arrow(true)
.shadow(true)
.borderColor(Color.BLACK)
.borderWidth(1)
.dimAmount(0.3f)
.edgeProtection(10f.dp2px(mContext))
.preferredDirection(MsNormalPopup.Direction.TOP)
.show(view)
.setContextView(configView)
.arrow(true)
.shadow(true)
.borderColor(Color.BLACK)
.borderWidth(1)
.dimAmount(0.3f)
.edgeProtection(10f.dp2px(mContext))
.preferredDirection(MsNormalPopup.Direction.TOP)
.show(view)
}
}
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ android.injected.testOnly=false
android.enableJetifier=true
android.useAndroidX=true
# version config
VERSION_CODE=13
VERSION_NAME=1.0.3
VERSION_CODE=15
VERSION_NAME=1.1.0
Binary file removed screens/app_v1.0.3_13.apk
Binary file not shown.
Binary file added screens/app_v1.1.0_15.apk
Binary file not shown.

0 comments on commit fb6a346

Please sign in to comment.