in src/main/java/com/amazonaws/kinesisvideo/demoapp/activity/WebRtcActivity.java [675:714]
private void addDataChannelToLocalPeer() {
Log.d(TAG, "Data channel addDataChannelToLocalPeer");
DataChannel localDataChannel = localPeer.createDataChannel("data-channel-of-" + mClientId, new DataChannel.Init());
localDataChannel.registerObserver(new DataChannel.Observer() {
@Override
public void onBufferedAmountChange(long l) {
Log.d(TAG, "Local Data Channel onBufferedAmountChange called with amount " + l);
}
@Override
public void onStateChange() {
Log.d(TAG, "Local Data Channel onStateChange: state: " + localDataChannel.state().toString());
if (sendDataChannelButton != null) {
runOnUiThread(() -> {
if (localDataChannel.state() == DataChannel.State.OPEN) {
sendDataChannelButton.setEnabled(true);
} else {
sendDataChannelButton.setEnabled(false);
}
});
}
}
@Override
public void onMessage(DataChannel.Buffer buffer) {
// Send out data, no op on sender side
}
});
sendDataChannelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
localDataChannel.send(new DataChannel.Buffer(
ByteBuffer.wrap(dataChannelText.getText().toString()
.getBytes(Charset.defaultCharset())), false));
dataChannelText.setText("");
}
});
}