Meeting SDK for Android API Reference
Loading...
Searching...
No Matches
ZoomSDKAudioRawDataHelper.java
Go to the documentation of this file.
1package us.zoom.sdk;
2
3import com.zipow.videobox.confapp.enums.CONF_CMD;
4
5import java.lang.ref.WeakReference;
6import java.nio.ByteBuffer;
7
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;
18
23
24 private static final String TAG = "ZoomSDKAudioRawDataHelper";
25 private WeakReference<IZoomSDKAudioRawDataDelegate> weakReference;
26
28
29 private RTCVideoRawDataDelegate rtcAudioRawDataDelegate;
30
31 SDKConfUIEventHandler.ISDKConfUIListener simpleConfUIListener = new SDKConfUIEventHandler.SimpleSDKConfUIListener() {
32 @Override
33 public boolean onConfStatusChanged2(int cmd, long ret) {
34 if (cmd == CONF_CMD.CMD_CONF_LEAVE_COMPLETE) {
36 } else if (cmd == CONF_CMD.CMD_CONF_SILENTMODE_CHANGED) {
37 if (SDKMeetingInterfaceHelper.isInSlientMode()) {
39 }
40 }
41 return true;
42 }
43 };
44
45 private void onConfLeave() {
47 SDKConfUIEventHandler.getInstance().removeListener(simpleConfUIListener);
48 virtualAudioMic=null;
49 }
50
51 RTCVideoRawDataDelegate.SimpleRTCVideoRawDataListener audioRawdataListener = new RTCVideoRawDataDelegate.SimpleRTCVideoRawDataListener() {
52
53 public void onUninitialize() {
54 if (null != virtualAudioMic) {
55 virtualAudioMic.onMicUninitialized();
56 }
57 }
58
59 public void onDeviceInitialize(long nativeHandle) {
60 if (null != virtualAudioMic) {
61 IZoomSDKAudioRawDataSender sender = new ZoomSDKAudioRawDataSender(nativeHandle);
62 virtualAudioMic.onMicInitialize(sender);
63 }
64 }
65
66 public void onStartSendData() {
67 if (null != virtualAudioMic) {
68 virtualAudioMic.onMicStartSend();
69 }
70 }
71
72 public void onStopSendData() {
73 if (null != virtualAudioMic) {
74 virtualAudioMic.onMicStopSend();
75 }
76 }
77
78 public void onDeviceUninitialize() {
79 if (null != virtualAudioMic) {
80 virtualAudioMic.onMicUninitialized();
81 }
82 }
83 };
84
85 RTCConferenceEventUI.SimpleRTCConferenceEventUIListener eventUIListener = new RTCConferenceEventUI.SimpleRTCConferenceEventUIListener() {
86
87 @Override
88 public void onMixedAudioRawDataReceived(ByteBuffer buffer, int bufferLen, int sampleRate,int channel,long timeStamp, long nativeHandle) {
89
90 if (null != weakReference) {
92 if (null != dataDelegate) {
93 ZoomSDKAudioRawData rawData = new ZoomSDKAudioRawData(buffer, bufferLen, sampleRate,channel,timeStamp, nativeHandle);
94 dataDelegate.onMixedAudioRawDataReceived(rawData);
95 } else {
96 if (BuildConfig.LOG_ENABLE) {
97 ZMLog.d(TAG, "onMixedAudioRawDataReceived dataDelegate is null");
98 }
99 }
100 }
101 }
102
103 @Override
104 public void onOneWayAudioRawDataReceivedImpl(ByteBuffer buffer, int bufferLen, int sampleRate, int channel, int userId,long timeStamp, long nativeHandle) {
105 if (null != weakReference) {
106 IZoomSDKAudioRawDataDelegate dataDelegate = weakReference.get();
107 if (null != dataDelegate) {
108 ZoomSDKAudioRawData rawData = new ZoomSDKAudioRawData(buffer, bufferLen, sampleRate,channel,timeStamp,nativeHandle);
109 dataDelegate.onOneWayAudioRawDataReceived(rawData, userId);
110 } else {
111 if (BuildConfig.LOG_ENABLE) {
112 ZMLog.d(TAG, "onOneWayAudioRawDataReceivedImpl dataDelegate is null");
113 }
114 }
115 }
116 }
117
118 @Override
119 public void onShareAudioRawDataReceived(ByteBuffer buffer, int bufferLen, int sampleRate, int channel,long timeStamp, long userId, long nativeHandle) {
120 if (null != weakReference) {
121 IZoomSDKAudioRawDataDelegate dataDelegate = weakReference.get();
122 if (null != dataDelegate) {
123 ZoomSDKAudioRawData rawData = new ZoomSDKAudioRawData(buffer, bufferLen, sampleRate,channel,timeStamp, nativeHandle);
124 dataDelegate.onShareAudioRawDataReceived(rawData, userId);
125 } else {
126 if (BuildConfig.LOG_ENABLE) {
127 ZMLog.d(TAG, "onShareAudioRawDataReceived dataDelegate is null");
128 }
129 }
130 }
131 }
132 };
133
134
136
137 }
138
139 @Override
141 if (SDKMeetingInterfaceHelper.isInSlientMode()) {
143 }
144
145 if (null == RTCConference.getInstance()) {
147 }
148 RTCConferenceEventUI.getInstance().addListener(eventUIListener);
149 weakReference = new WeakReference<>(delegate);
150 int ret = RTCConference.getInstance().getAudioRawDataHelper().start();
151 MobileRTCRawDataError error= ErrorCodeMapping.mapping(ret);
152 ZoomMeetingSDKBridgeHelper.getInstance().trackingMSDKInteractEvent(TAG, "subscribe", error.ordinal());
153 return error;
154 }
155
156 @Override
158 if (null == RTCConference.getInstance()) {
160 }
161 RTCConferenceEventUI.getInstance().removeListener(eventUIListener);
162 weakReference = null;
163 int ret = RTCConference.getInstance().getAudioRawDataHelper().stop();
164 MobileRTCRawDataError error= ErrorCodeMapping.mapping(ret);
165 ZoomMeetingSDKBridgeHelper.getInstance().trackingMSDKInteractEvent(TAG, "unSubscribe", error.ordinal());
166 return error;
167 }
168
169 @Override
171 if (null == RTCConference.getInstance()) {
173 }
174
175 if (SDKMeetingInterfaceHelper.isInSlientMode()) {
177 }
178 if (this.virtualAudioMic == audioMic) {
180 }
181 this.virtualAudioMic = audioMic;
182
183 int result = 0;
184 if (null == audioMic) {
185 result = RTCConference.getInstance().getAudioRawDataHelper().setVirtualAudioMic(0);
187 } else {
188 rtcAudioRawDataDelegate = new RTCVideoRawDataDelegate(audioRawdataListener);
189 result = RTCConference.getInstance().getAudioRawDataHelper().setVirtualAudioMic(rtcAudioRawDataDelegate.getRecevHandle());
190 }
191 if (result != 0) {
192 this.virtualAudioMic = null;
193 }
194 MobileRTCRawDataError error= ErrorCodeMapping.mapping(result);
195 ZoomMeetingSDKBridgeHelper.getInstance().trackingMSDKInteractEvent(TAG, "setExternalAudioSource", error.ordinal());
196 return error;
197 }
198}
RTCConferenceEventUI.SimpleRTCConferenceEventUIListener eventUIListener
MobileRTCRawDataError unSubscribe()
unsubscribe audio raw data
WeakReference< IZoomSDKAudioRawDataDelegate > weakReference
SDKConfUIEventHandler.ISDKConfUIListener simpleConfUIListener
RTCVideoRawDataDelegate.SimpleRTCVideoRawDataListener audioRawdataListener
MobileRTCRawDataError subscribe(IZoomSDKAudioRawDataDelegate delegate)
subscribe audio raw data.
MobileRTCRawDataError setExternalAudioSource(IZoomSDKVirtualAudioMicEvent audioMic)
Set external audio source.
Zoom SDK audio raw data bean.
Enumeration of raw data errors.
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
Interface for sending audio raw data.