Adds setAudio[Track/Record]StateCallback interfaces to the Java ADM

Bug: webrtc:10950
Change-Id: Ifa7bd7eb003bf97812ce0dfa5a0192ee8955419c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151648
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29107}
This commit is contained in:
henrika
2019-09-06 13:45:11 +02:00
committed by Commit Bot
parent 81a08a7feb
commit 4d6b2691bd
4 changed files with 121 additions and 7 deletions

View File

@ -75,7 +75,9 @@ import org.webrtc.VideoTrack;
import org.webrtc.audio.AudioDeviceModule;
import org.webrtc.audio.JavaAudioDeviceModule;
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordErrorCallback;
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordStateCallback;
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackErrorCallback;
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackStateCallback;
/**
* Peer connection client implementation.
@ -501,12 +503,40 @@ public class PeerConnectionClient {
}
};
// Set audio record state callbacks.
AudioRecordStateCallback audioRecordStateCallback = new AudioRecordStateCallback() {
@Override
public void onWebRtcAudioRecordStart() {
Log.i(TAG, "Audio recording starts");
}
@Override
public void onWebRtcAudioRecordStop() {
Log.i(TAG, "Audio recording stops");
}
};
// Set audio track state callbacks.
AudioTrackStateCallback audioTrackStateCallback = new AudioTrackStateCallback() {
@Override
public void onWebRtcAudioTrackStart() {
Log.i(TAG, "Audio playout starts");
}
@Override
public void onWebRtcAudioTrackStop() {
Log.i(TAG, "Audio playout stops");
}
};
return JavaAudioDeviceModule.builder(appContext)
.setSamplesReadyCallback(saveRecordedAudioToFile)
.setUseHardwareAcousticEchoCanceler(!peerConnectionParameters.disableBuiltInAEC)
.setUseHardwareNoiseSuppressor(!peerConnectionParameters.disableBuiltInNS)
.setAudioRecordErrorCallback(audioRecordErrorCallback)
.setAudioTrackErrorCallback(audioTrackErrorCallback)
.setAudioRecordStateCallback(audioRecordStateCallback)
.setAudioTrackStateCallback(audioTrackStateCallback)
.createAudioDeviceModule();
}