3import com.zipow.videobox.confapp.enums.CONF_CMD;
5import java.lang.ref.WeakReference;
6import java.nio.ByteBuffer;
8import us.zoom.common.crossplatform.cmmlib.BuildConfig;
9import us.zoom.core.helper.ZMLog;
10import us.zoom.internal.ErrorCodeMapping;
11import us.zoom.internal.RTCConference;
12import us.zoom.internal.event.RTCConferenceEventUI;
13import us.zoom.internal.event.RTCVideoRawDataDelegate;
14import us.zoom.internal.event.SDKConfUIEventHandler;
15import us.zoom.internal.helper.SDKMeetingInterfaceHelper;
16import us.zoom.internal.impl.ZoomSDKAudioRawDataSender;
17import us.zoom.internal.jni.helper.ZoomMeetingSDKBridgeHelper;
21 private static final String
TAG =
"ZoomSDKAudioRawDataHelper";
28 SDKConfUIEventHandler.ISDKConfUIListener
simpleConfUIListener =
new SDKConfUIEventHandler.SimpleSDKConfUIListener() {
30 public boolean onConfStatusChanged2(
int cmd,
long ret) {
31 if (cmd == CONF_CMD.CMD_CONF_LEAVE_COMPLETE) {
33 }
else if (cmd == CONF_CMD.CMD_CONF_SILENTMODE_CHANGED) {
34 if (SDKMeetingInterfaceHelper.isInSlientMode()) {
48 RTCVideoRawDataDelegate.SimpleRTCVideoRawDataListener
audioRawdataListener =
new RTCVideoRawDataDelegate.SimpleRTCVideoRawDataListener() {
50 public void onUninitialize() {
56 public void onDeviceInitialize(
long nativeHandle) {
63 public void onStartSendData() {
69 public void onStopSendData() {
75 public void onDeviceUninitialize() {
82 RTCConferenceEventUI.SimpleRTCConferenceEventUIListener
eventUIListener =
new RTCConferenceEventUI.SimpleRTCConferenceEventUIListener() {
85 public void onMixedAudioRawDataReceived(ByteBuffer buffer,
int bufferLen,
int sampleRate,
int channel,
long timeStamp,
long nativeHandle) {
89 if (
null != dataDelegate) {
93 if (BuildConfig.LOG_ENABLE) {
94 ZMLog.d(
TAG,
"onMixedAudioRawDataReceived dataDelegate is null");
101 public void onOneWayAudioRawDataReceivedImpl(ByteBuffer buffer,
int bufferLen,
int sampleRate,
int channel,
int userId,
long timeStamp,
long nativeHandle) {
104 if (
null != dataDelegate) {
108 if (BuildConfig.LOG_ENABLE) {
109 ZMLog.d(
TAG,
"onOneWayAudioRawDataReceivedImpl dataDelegate is null");
116 public void onShareAudioRawDataReceived(ByteBuffer buffer,
int bufferLen,
int sampleRate,
int channel,
long timeStamp,
long userId,
long nativeHandle) {
119 if (
null != dataDelegate) {
123 if (BuildConfig.LOG_ENABLE) {
124 ZMLog.d(
TAG,
"onShareAudioRawDataReceived dataDelegate is null");
138 if (SDKMeetingInterfaceHelper.isInSlientMode()) {
142 if (
null == RTCConference.getInstance()) {
147 int ret = RTCConference.getInstance().getAudioRawDataHelper().start();
149 ZoomMeetingSDKBridgeHelper.getInstance().trackingMSDKInteractEvent(
TAG,
"subscribe", error.ordinal());
155 if (
null == RTCConference.getInstance()) {
160 int ret = RTCConference.getInstance().getAudioRawDataHelper().stop();
162 ZoomMeetingSDKBridgeHelper.getInstance().trackingMSDKInteractEvent(
TAG,
"unSubscribe", error.ordinal());
168 if (
null == RTCConference.getInstance()) {
172 if (SDKMeetingInterfaceHelper.isInSlientMode()) {
175 if (this.virtualAudioMic == audioMic) {
178 this.virtualAudioMic = audioMic;
181 if (
null == audioMic) {
182 result = RTCConference.getInstance().getAudioRawDataHelper().setVirtualAudioMic(0);
186 result = RTCConference.getInstance().getAudioRawDataHelper().setVirtualAudioMic(
rtcAudioRawDataDelegate.getRecevHandle());
189 this.virtualAudioMic =
null;
192 ZoomMeetingSDKBridgeHelper.getInstance().trackingMSDKInteractEvent(
TAG,
"setExternalAudioSource", error.ordinal());
RTCConferenceEventUI.SimpleRTCConferenceEventUIListener eventUIListener
MobileRTCRawDataError unSubscribe()
unsubscribe audio raw data
ZoomSDKAudioRawDataHelper()
WeakReference< IZoomSDKAudioRawDataDelegate > weakReference
SDKConfUIEventHandler.ISDKConfUIListener simpleConfUIListener
IZoomSDKVirtualAudioMicEvent virtualAudioMic
RTCVideoRawDataDelegate.SimpleRTCVideoRawDataListener audioRawdataListener
MobileRTCRawDataError subscribe(IZoomSDKAudioRawDataDelegate delegate)
subscribe audio raw data.
MobileRTCRawDataError setExternalAudioSource(IZoomSDKVirtualAudioMicEvent audioMic)
Set external audio source.
RTCVideoRawDataDelegate rtcAudioRawDataDelegate
Zoom SDK audio raw data bean.
MobileRTCRawData_WrongUsage
MobileRTCRawData_Uninitialized
MobileRTCRawData_Invalid_Param
Zoom SDK Audio raw data callback.
void onShareAudioRawDataReceived(ZoomSDKAudioRawData rawData, long userId)
share audio raw data received callback
void onOneWayAudioRawDataReceived(ZoomSDKAudioRawData rawData, int userId)
User audio raw data received callback.
void onMixedAudioRawDataReceived(ZoomSDKAudioRawData rawData)
mixed audio raw data received callback
void onMicStartSend()
Callback for virtual audio mic can send raw data with 'sender'.
void onMicInitialize(IZoomSDKAudioRawDataSender sender)
Callback for virtual audio mic to do some initialization.
void onMicStopSend()
Callback for virtual audio mic should stop send raw data.
void onMicUninitialized()
Callback for virtual audio mic is uninitialized.