음 소거 상태 공유 및 제어
음 소거란 마이크로 입력된 오디오의 전송을 비활성화하는 것을 말합니다. 로컬 오디오를 음 소거하거나 음 소거 해제하고 애플리케이션의 음 소거 상태를 피어와 공유할 수 있습니다. 또한 특정 피어 또는 모든 피어에게 음 소거하거나 음 소거 해제하도록 요청할 수도 있습니다.
로컬 오디오 음 소거 제어 및 공유
통화 유형별로 로컬 오디오를 음 소거하거나 음 소거 해제하는 방법을 설명합니다.
1대1 통화
1대1 통화에서 로컬 오디오를 음 소거하거나 음 소거 해제하려면 muteMyAudio()를 사용하세요. 로컬 오디오의 음 소거 상태 변경은 onPeerMicMuted 또는 onPeerMicUnmuted를 통해 피어에게 전달됩니다.
다음 다이어그램은 1대1 통화에서 로컬 오디오를 음 소거 및 음 소거 해제하는 흐름을 보여줍니다.
관련된 샘플 코드는 다음과 같습니다.
로컬 오디오 음 소거 또는 음 소거 해제하기
// mute: true for mute, false for unmute
Future<bool> muteMyAudioExample(PlanetKitCall call, bool mute) async {
final bool result = await call.muteMyAudio(mute);
print('muteMyAudio(mute=$mute) result: $result');
return result;
}
피어 측에서 관련 이벤트 처리하기
final callEventHandler = PlanetKitCallEventHandler(
onPeerMicMuted: (call) => print('peer mic muted'),
onPeerMicUnmuted: (call) => print('peer mic unmuted'),
);
그룹 통화
그룹 통화에서 로컬 오디오를 음 소거하거나 음 소거 해제하려면 muteMyAudio()를 사용하세요. 로컬 오디오의 음 소거 상태 변경은 onPeersMicMuted 또는 onPeersMicUnmuted를 통해 피어에게 전달됩니다.
다음 다이어그램은 그룹 통화에서 로컬 오디오를 음 소거 및 음 소거 해제하는 흐름을 보여줍니다.
관련된 샘플 코드는 다음과 같습니다.
로컬 오디오 음 소거 또는 음 소거 해제하기
// mute: true for mute, false for unmute
Future<bool> muteMyAudioExample(PlanetKitConference conference, bool mute) async {
final bool result = await conference.muteMyAudio(mute);
print('muteMyAudio(mute=$mute) result: $result');
return result;
}
피어 측에서 관련 이벤트 처리하기
final conferenceEventHandler = PlanetKitConferenceEventHandler(
onPeersMicMuted: (conference, peers) =>
print('peers mic muted (${peers.length})'),
onPeersMicUnmuted: (conference, peers) =>
print('peers mic unmuted (${peers.length})'),
);
원격 오디오 음 소거 요청
통화 유형별로 원격 오디오의 음 소거 또는 음 소거 해제를 요청하는 방법을 설명합니다.
피어가 요청을 받았을 때 오디오를 음 소거하거나 음 소거 해제해야 하는지 여부는 구현에 따라 다릅니다.
아래 예시에서는 피어가 요청에 따라 음 소거하거나 음 소거 해제한다고 가정합니다.
1대1 통화
1대1 통화에서 피어에게 음 소거 또는 음 소거 해제를 요청하려면 requestPeerMute()를 사용하세요. 이 요청은 onMuteMyAudioRequestedByPeer를 통해 피어에게 전달되며, 원격 오디오의 음 소거 상태 변경은 onPeerMicMuted 또는 onPeerMicUnmuted를 통해 로컬 사용자에게 전달됩니다.
다음 다이어그램은 1대1 통화에서 원격 오디오의 음 소거 및 음 소거 해제를 요청하는 흐름을 보여줍니다.
관련된 샘플 코드는 다음과 같습니다.
원격 오디오 음 소거 또는 음 소거 해제 요청하기
// mute: true for mute, false for unmute
Future<bool> requestPeerMuteExample(PlanetKitCall call, bool mute) async {
final bool result = await call.requestPeerMute(mute);
print('requestPeerMute(mute=$mute) result: $result');
return result;
}
피어 측에서 관련 이벤트 처리하기
final callEventHandler = PlanetKitCallEventHandler(
onMyAudioMuteRequestedByPeer: (call, mute) async {
print('my audio mute requested by peer: mute=$mute'),
final bool result = await call.muteMyAudio(mute);
print('muteMyAudio(mute=$mute) result: $result');
},
);
그룹 통화
그룹 통화에서는 특정 피어 또는 모든 피어에게 오디오를 음 소거하거나 음 소거 해제하도록 요청할 수 있습니다.
- 특정 피어에게 음 소거 또는 음 소거 해제하도록 요청하려면
requestPeerMute()를 사용하세요. - 모든 피어에게 음 소거 또는 음 소거 해제하도록 요청하려면
requestPeersMute()를 사용하세요.
이 요청은 onMuteMyAudioRequestedByPeer를 통해 피어에게 전달되며, 원격 오디오의 음 소거 상태 변경은 onPeersMicMuted 또는 onPeersMicUnmuted를 통해 로컬 사용자에게 전달됩니다.
다음 다이어그램은 그룹 통화에서 원격 오디오의 음 소거 및 음 소거 해제를 요청하는 흐름을 보여줍니다.
관련된 샘플 코드는 다음과 같습니다.
원격 오디오 음 소거 또는 음 소거 해제 요청하기
// Request mute for single peer
// mute: true for mute, false for unmute
Future<bool> requestPeerMuteExample(PlanetKitConference conference, bool mute, PlanetKitUserId peerId) async {
final bool result = await conference.requestPeerMute(mute, peerId);
print('requestPeerMute(mute=$mute, peerId=$peerId) result: $result');
return result;
}
// Request mute for all peers
// mute: true for mute, false for unmute
Future<bool> requestPeersMuteExample(PlanetKitConference conference, bool mute) async {
final bool result = await conference.requestPeersMute(mute);
print('requestPeersMute(mute=$mute) result: $result');
return result;
}
피어 측에서 관련 이벤트 처리하기
final conferenceEventHandler = PlanetKitConferenceEventHandler(
onMyAudioMuteRequestedByPeer: (conference, peer, mute) async {
print('my audio mute requested by peer: mute=$mute'),
final bool result = await conference.muteMyAudio(mute);
print('muteMyAudio(mute=$mute) result: $result');
},
);
관련 API
음 소거 제어 및 상태 공유와 관련된 API는 다음과 같습니다.