forked from getodk/collect
/
MediaRecorderWrapper.kt
69 lines (54 loc) 路 1.73 KB
/
MediaRecorderWrapper.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package org.odk.collect.audiorecorder.recorder
import android.media.MediaRecorder
/**
* Allows faking/stubbing/mocking with our interactions with Android's MediaRecorder. Could also
* wrap multiple implementations in the future.
*/
internal interface MediaRecorderWrapper {
fun setAudioSource(audioSource: Int)
fun setOutputFormat(outputFormat: Int)
fun setOutputFile(path: String)
fun setAudioEncoder(audioEncoder: Int)
fun setAudioEncodingSampleRate(sampleRate: Int)
fun setAudioEncodingBitRate(bitRate: Int)
fun prepare()
fun start()
fun stop()
fun release()
fun getMaxAmplitude(): Int
}
class RealMediaRecorderWrapper(private val mediaRecorder: MediaRecorder) : MediaRecorderWrapper {
override fun setAudioSource(audioSource: Int) {
mediaRecorder.setAudioSource(audioSource)
}
override fun setOutputFormat(outputFormat: Int) {
mediaRecorder.setOutputFormat(outputFormat)
}
override fun setOutputFile(path: String) {
mediaRecorder.setOutputFile(path)
}
override fun setAudioEncoder(audioEncoder: Int) {
mediaRecorder.setAudioEncoder(audioEncoder)
}
override fun setAudioEncodingSampleRate(sampleRate: Int) {
mediaRecorder.setAudioSamplingRate(sampleRate)
}
override fun setAudioEncodingBitRate(bitRate: Int) {
mediaRecorder.setAudioEncodingBitRate(bitRate)
}
override fun prepare() {
mediaRecorder.prepare()
}
override fun start() {
mediaRecorder.start()
}
override fun stop() {
mediaRecorder.stop()
}
override fun release() {
mediaRecorder.release()
}
override fun getMaxAmplitude(): Int {
return mediaRecorder.maxAmplitude
}
}