feat(videocall): complete channel wrapper + add integration plan doc

Add 11 missing JCMediaChannel methods to VideocallChannelService:
getSelfParticipant, subscribeParticipantAudio, startScreenShareVideo,
stopScreenShareVideo, enableSelfVideoRatio, getMaxResolution,
sendCommandToDelivery, enableVolumeChangeNotify, getCaptureScreen,
getScreenRenderId, getScreenUserId.

Add VIDEOCALL_INTEGRATION.md with full implementation checklist
tracking phases 1-10.
This commit is contained in:
2026-04-17 15:51:36 +02:00
parent afa916a30d
commit b9b49f0b26
2 changed files with 283 additions and 0 deletions

View File

@@ -298,6 +298,57 @@ class VideocallChannelService with JCMediaChannelCallback {
return _channel!.getCdnState();
}
Future<String> getCaptureScreen() async {
if (_channel == null) return '';
return _channel!.getCaptureScreen();
}
Future<String> getScreenRenderId() async {
if (_channel == null) return '';
return _channel!.getScreenRenderId();
}
Future<String> getScreenUserId() async {
if (_channel == null) return '';
return _channel!.getScreenUserId();
}
// -- Self participant --
Future<JCMediaChannelParticipant?> getSelfParticipant() async {
return _channel?.getSelfParticipant();
}
Future<bool> subscribeParticipantAudio(
JCMediaChannelParticipant participant, bool subscribe) async {
if (_channel == null) return false;
return _channel!.subscribeParticipantAudio(participant, subscribe);
}
// -- Screen share video --
Future<JCMediaDeviceVideoCanvas?> startScreenShareVideo(
int renderType, int pictureSize) async {
return _channel?.startScreenShareVideo(renderType, pictureSize);
}
Future<bool> stopScreenShareVideo() async {
if (_channel == null) return false;
return _channel!.stopScreenShareVideo();
}
// -- Video ratio / resolution --
Future<bool> enableSelfVideoRatio(bool enable, double ratio) async {
if (_channel == null) return false;
return _channel!.enableSelfVideoRatio(enable, ratio);
}
Future<int> getMaxResolution() async {
if (_channel == null) return 0;
return _channel!.getMaxResolution();
}
// -- Messaging --
Future<bool> sendMessage(
@@ -311,6 +362,11 @@ class VideocallChannelService with JCMediaChannelCallback {
return _channel!.sendCommand(name, param);
}
Future<bool> sendCommandToDelivery(String command) async {
if (_channel == null) return false;
return _channel!.sendCommandToDelivery(command);
}
// -- Statistics --
Future<String> getStatistics() async {
@@ -318,6 +374,18 @@ class VideocallChannelService with JCMediaChannelCallback {
return _channel!.getStatistics();
}
// -- Volume change notify --
Future<bool> enableVolumeChangeNotify(bool value) async {
if (_channel == null) return false;
return _channel!.enableVolumeChangeNotify(value);
}
Future<bool> getVolumeChangeNotify() async {
if (_channel == null) return false;
return _channel!.getVolumeChangeNotify();
}
// -- Dispose --
void dispose() {