Now uses AudioRecord.Builder on Android again.
I tried to land the same change by reverting https://webrtc-review.googlesource.com/c/src/+/34443 but the revert failed and I therefore land it manually here instead. TBR=glaznev@webrtc.org Bug: b/32742417 Change-Id: Ied8ed3e7c7d67c51f781e39cbea952a2303278d9 Reviewed-on: https://webrtc-review.googlesource.com/34442 Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Commit-Queue: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21351}
This commit is contained in:
parent
08279b5cf5
commit
e7a5567954
@ -201,8 +201,16 @@ public class WebRtcAudioRecord {
|
||||
int bufferSizeInBytes = Math.max(BUFFER_SIZE_FACTOR * minBufferSize, byteBuffer.capacity());
|
||||
Logging.d(TAG, "bufferSizeInBytes: " + bufferSizeInBytes);
|
||||
try {
|
||||
audioRecord = new AudioRecord(audioSource, sampleRate, channelConfig,
|
||||
AudioFormat.ENCODING_PCM_16BIT, bufferSizeInBytes);
|
||||
if (WebRtcAudioUtils.runningOnMarshmallowOrHigher()) {
|
||||
// Use AudioRecord.Builder to create the AudioRecord instance if we are
|
||||
// on API level 23 or higher.
|
||||
audioRecord = createAudioRecordOnMarshmallowOrHigher(
|
||||
sampleRate, channelConfig, bufferSizeInBytes);
|
||||
} else {
|
||||
// Use default constructor for API levels below 23.
|
||||
audioRecord = new AudioRecord(audioSource, sampleRate, channelConfig,
|
||||
AudioFormat.ENCODING_PCM_16BIT, bufferSizeInBytes);
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
reportWebRtcAudioRecordInitError("AudioRecord ctor error: " + e.getMessage());
|
||||
releaseAudioResources();
|
||||
@ -276,6 +284,22 @@ public class WebRtcAudioRecord {
|
||||
}
|
||||
}
|
||||
|
||||
// Creates an AudioRecord instance using AudioRecord.Builder.
|
||||
@TargetApi(23)
|
||||
private AudioRecord createAudioRecordOnMarshmallowOrHigher(
|
||||
int sampleRateInHz, int channelConfig, int bufferSizeInBytes) {
|
||||
Logging.d(TAG, "createAudioRecordOnMarshmallowOrHigher");
|
||||
return new AudioRecord.Builder()
|
||||
.setAudioSource(audioSource)
|
||||
.setAudioFormat(new AudioFormat.Builder()
|
||||
.setEncoding(AudioFormat.ENCODING_PCM_16BIT)
|
||||
.setSampleRate(sampleRateInHz)
|
||||
.setChannelMask(channelConfig)
|
||||
.build())
|
||||
.setBufferSizeInBytes(bufferSizeInBytes)
|
||||
.build();
|
||||
}
|
||||
|
||||
// Helper method which throws an exception when an assertion has failed.
|
||||
private static void assertTrue(boolean condition) {
|
||||
if (!condition) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user