Skip to content

Commit b425b57

Browse files
committed
feat. upgrade to 2.9.0 native sdk android & ios. stage 1
1 parent 39ba125 commit b425b57

File tree

7 files changed

+300
-118
lines changed

7 files changed

+300
-118
lines changed

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ dependencies {
6161
def androidSupportVersion = rootProject.hasProperty("androidSupportVersion") ? rootProject.androidSupportVersion : DEFAULT_ANDROID_SUPPORT_VERSION
6262
// from internet
6363
implementation "com.android.support:appcompat-v7:$androidSupportVersion"
64-
implementation "io.agora.rtc:full-sdk:2.8.2"
64+
implementation "io.agora.rtc:full-sdk:2.9.0"
6565
// from node_modules
6666
implementation "com.facebook.react:react-native:+"
6767
}

android/src/main/java/com/syan/agora/AgoraConst.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,8 @@ public class AgoraConst {
2525
public final static String AGFirstLocalAudioFrame = "firstLocalAudioFrame";
2626
public final static String AGFirstRemoteAudioFrame = "firstRemoteAudioFrame";
2727
public final static String AGFirstLocalVideoFrame = "firstLocalVideoFrame";
28-
public final static String AGFirstRemoteVideoDecoded = "firstRemoteVideoDecoded";
2928
public final static String AGFirstRemoteVideoFrame = "firstRemoteVideoFrame";
3029
public final static String AGUserMuteAudio = "userMuteAudio";
31-
public final static String AGUserMuteVideo = "userMuteVideo";
32-
public final static String AGUserEnableVideo = "userEnableVideo";
33-
public final static String AGUserEnableLocalVideo = "userEnableLocalVideo";
3430
public final static String AGVideoSizeChanged = "videoSizeChanged";
3531
public final static String AGRtmpStreamingStateChanged = "rtmpStreamingStateChanged";
3632
public final static String AGNetworkTypeChanged = "networkTypeChanged";
@@ -44,15 +40,18 @@ public class AgoraConst {
4440
public final static String AGAudioRouteChanged = "audioRouteChanged";
4541
public final static String AGCameraFocusAreaChanged = "cameraFocusAreaChanged";
4642
public final static String AGCameraExposureAreaChanged = "cameraExposureAreaChanged";
43+
public final static String AGRemoteAudioStateChanged = "remoteAudioStateChanged";
44+
public final static String AGLocalAudioStateChanged = "localAudioStateChanged";
45+
public final static String AGLocalAudioStats = "localAudioStats";
46+
public final static String AGMediaRelayStateChanged = "mediaRelayStateChanged";
47+
public final static String AGReceivedChannelMediaRelay = "receivedChannelMediaRelay";
4748

4849
public final static String AGRtcStats = "rtcStats";
4950
public final static String AGLastmileQuality = "lastmileQuality";
5051
public final static String AGNetworkQuality = "networkQuality";
5152
public final static String AGLocalVideoStats = "localVideoStats";
5253
public final static String AGRemoteVideoStats = "remoteVideoStats";
5354
public final static String AGRemoteAudioStats = "remoteAudioStats";
54-
public final static String AGAudioTransportStatsOfUid = "audioTransportStatsOfUid";
55-
public final static String AGVideoTransportStatsOfUid = "videoTransportStatsOfUid";
5655

5756
public final static String AGRemoteAudioMixingStart = "remoteAudioMixingStart";
5857
public final static String AGRemoteAudioMixingFinish = "remoteAudioMixingFinish";

android/src/main/java/com/syan/agora/AgoraModule.java

Lines changed: 201 additions & 99 deletions
Large diffs are not rendered by default.

android/src/main/java/com/syan/agora/AgoraVideoView.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ public void setZOrderMediaOverlay(boolean zOrderMediaOverlay) {
5050
private Integer renderMode = 1;
5151
private Integer remoteUid;
5252
private boolean zOrderMediaOverlay;
53-
private SurfaceView surfaceView;
5453

5554
public AgoraVideoView(Context context) {
5655
super(context);

ios/RCTAgora/AgoraConst.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ static NSString *AGStreamInjectedStatus = @"streamInjectedStatus";
6868
static NSString *AGReceiveStreamMessage = @"receiveStreamMessage";
6969
static NSString *AGOccurStreamMessageError = @"occurStreamMessageError";
7070

71+
static NSString *AGReceivedChannelMediaRelay = @"receivedChannelMediaRelay";
72+
static NSString *AGMediaRelayStateChanged = @"mediaRelayStateChanged";
73+
7174
static NSString *AGMediaEngineLoaded = @"mediaEngineLoaded";
7275
static NSString *AGMediaEngineStartCall = @"mediaEngineStartCall";
7376

ios/RCTAgora/AgoraConst.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ + (instancetype)share {
8585
AGReceiveStreamMessage,
8686
AGOccurStreamMessageError,
8787

88+
AGReceivedChannelMediaRelay,
89+
AGMediaRelayStateChanged,
90+
8891
AGMediaEngineLoaded,
8992
AGMediaEngineStartCall,
9093
AGIntervalTest,

ios/RCTAgora/RCTAgora.m

Lines changed: 87 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ - (NSData *_Nullable)readyToSendMetadataAtTimestamp:(NSTimeInterval)timestamp
4848
return toSend;
4949
}
5050

51-
- (void)receiveMetadata:(NSData *_Nonnull)data fromUser:(NSUInteger)uid atTimestamp:(NSTimeInterval)timestamp {
51+
- (void)receiveMetadata:(NSData *_Nonnull)data fromUser:(NSInteger)uid atTimestamp:(NSTimeInterval)timestamp {
5252
NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
5353
[self sendEvent:AGMediaMetaDataReceived params:@{
5454
@"uid": @(uid),
@@ -313,6 +313,67 @@ - (NSDictionary *)constantsToExport {
313313
}
314314
}
315315

316+
// startChannelMediaRelay
317+
RCT_EXPORT_METHOD(startChannelMediaRelay:(NSDictionary *)options
318+
resolve:(RCTPromiseResolveBlock)resolve
319+
reject:(RCTPromiseRejectBlock)reject) {
320+
AgoraChannelMediaRelayConfiguration *config = [[AgoraChannelMediaRelayConfiguration alloc] init];
321+
322+
AgoraChannelMediaRelayInfo *src = [config sourceInfo];
323+
NSDictionary *srcOption = options[@"src"];
324+
src.channelName = srcOption[@"channelName"];
325+
src.uid = [srcOption[@"uid"] integerValue];
326+
src.token = srcOption[@"token"];
327+
AgoraChannelMediaRelayInfo *dst = [[AgoraChannelMediaRelayInfo alloc] init];
328+
NSDictionary *dstOption = options[@"dst"];
329+
dst.channelName = dstOption[@"channelName"];
330+
dst.uid = [dstOption[@"uid"] integerValue];
331+
dst.token = dstOption[@"token"];
332+
[config setDestinationInfo:dst forChannelName:dstOption[@"channelName"]];
333+
NSInteger res = [self.rtcEngine startChannelMediaRelay:config];
334+
if (res == 0) {
335+
resolve(nil);
336+
} else {
337+
reject(@(-1).stringValue, @(res).stringValue, nil);
338+
}
339+
}
340+
341+
// updateChannelMediaRelay
342+
RCT_EXPORT_METHOD(updateChannelMediaRelay:(NSDictionary *)options
343+
resolve:(RCTPromiseResolveBlock)resolve
344+
reject:(RCTPromiseRejectBlock)reject) {
345+
AgoraChannelMediaRelayConfiguration *config = [[AgoraChannelMediaRelayConfiguration alloc] init];
346+
347+
AgoraChannelMediaRelayInfo *src = [config sourceInfo];
348+
NSDictionary *srcOption = options[@"src"];
349+
src.channelName = srcOption[@"channelName"];
350+
src.uid = [srcOption[@"uid"] integerValue];
351+
src.token = srcOption[@"token"];
352+
AgoraChannelMediaRelayInfo *dst = [[AgoraChannelMediaRelayInfo alloc] init];
353+
NSDictionary *dstOption = options[@"dst"];
354+
dst.channelName = dstOption[@"channelName"];
355+
dst.uid = [dstOption[@"uid"] integerValue];
356+
dst.token = dstOption[@"token"];
357+
[config setDestinationInfo:dst forChannelName:dstOption[@"channelName"]];
358+
NSInteger res = [self.rtcEngine updateChannelMediaRelay:config];
359+
if (res == 0) {
360+
resolve(nil);
361+
} else {
362+
reject(@(-1).stringValue, @(res).stringValue, nil);
363+
}
364+
}
365+
366+
// stopChannelMediaRelay
367+
RCT_EXPORT_METHOD(stopChannelMediaRelay:(RCTPromiseResolveBlock)resolve
368+
reject:(RCTPromiseRejectBlock)reject) {
369+
NSInteger res = [self.rtcEngine stopChannelMediaRelay];
370+
if (res == 0) {
371+
resolve(nil);
372+
} else {
373+
reject(@(-1).stringValue, @(res).stringValue, nil);
374+
}
375+
}
376+
316377
// register user account
317378
RCT_EXPORT_METHOD(registerLocalUserAccount:(NSDictionary *)options
318379
resolve:(RCTPromiseResolveBlock)resolve
@@ -927,7 +988,7 @@ - (NSDictionary *)constantsToExport {
927988

928989
// set volume of effect
929990
RCT_EXPORT_METHOD(setVolumeOfEffect
930-
:(NSInteger) soundId
991+
:(int) soundId
931992
volume:(double)volume
932993
resolve:(RCTPromiseResolveBlock)resolve
933994
reject:(RCTPromiseRejectBlock)reject) {
@@ -1717,25 +1778,25 @@ - (void) stopObserving {
17171778
#pragma mark - <AgoraRtcEngineDelegate>
17181779
// EVENT CALLBACKS
17191780
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didOccurWarning:(AgoraWarningCode)warningCode {
1720-
[self sendEvent:AGWarning params:@{@"message": @"AgoraWarning", @"code": @(warningCode)}];
1781+
[self sendEvent:AGWarning params:@{@"message": @"AgoraWarning", @"errorCode": @(warningCode)}];
17211782
}
17221783

17231784
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didOccurError:(AgoraErrorCode)errorCode {
1724-
[self sendEvent:AGError params:@{@"message": @"AgoraError", @"code": @(errorCode)}];
1785+
[self sendEvent:AGError params:@{@"message": @"AgoraError", @"errorCode": @(errorCode)}];
17251786
}
17261787

17271788
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didApiCallExecute:(NSInteger)error api:(NSString *_Nonnull)api result:(NSString *_Nonnull)result {
17281789
if (error != 0) {
17291790
[self sendEvent:AGError params:@{
17301791
@"api": api,
17311792
@"result": result,
1732-
@"error": @(error)
1793+
@"errorCode": @(error)
17331794
}];
17341795
} else {
17351796
[self sendEvent:AGApiCallExecute params:@{
17361797
@"api": api,
17371798
@"result": result,
1738-
@"error": @(error)
1799+
@"errorCode": @(error)
17391800
}];
17401801
}
17411802
}
@@ -1852,7 +1913,7 @@ - (void)rtcEngineRequestToken:(AgoraRtcEngineKit *_Nonnull)engine {
18521913
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine localAudioStateChange:(AgoraAudioLocalState)state error:(AgoraAudioLocalError)error {
18531914
[self sendEvent:AGLocalAudioStateChanged params:@{
18541915
@"state": @(state),
1855-
@"error": @(error)
1916+
@"errorCode": @(error)
18561917
}];
18571918
}
18581919

@@ -1945,10 +2006,12 @@ - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine videoSizeChangedOfUid:(NSU
19452006
}];
19462007
}
19472008

1948-
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine remoteVideoStateChangedOfUid:(NSUInteger)uid state:(AgoraVideoRemoteState)state {
2009+
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine remoteVideoStateChangedOfUid:(NSUInteger)uid state:(AgoraVideoRemoteState)state reason:(AgoraVideoRemoteStateReason)reason elapsed:(NSInteger)elapsed {
19492010
[self sendEvent:AGRemoteVideoStateChanged params:@{
19502011
@"uid": @(uid),
1951-
@"state": @(state)
2012+
@"state": @(state),
2013+
@"reason": @(reason),
2014+
@"elapsed": @(elapsed)
19522015
}];
19532016
}
19542017

@@ -2087,7 +2150,7 @@ - (void)rtcEngineDidAudioEffectFinish:(AgoraRtcEngineKit *_Nonnull)engine soundI
20872150
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine streamPublishedWithUrl:(NSString *_Nonnull)url errorCode:(AgoraErrorCode)errorCode {
20882151
[self sendEvent:AGStreamPublished params:@{
20892152
@"url": url,
2090-
@"code": @(errorCode)
2153+
@"errorCode": @(errorCode)
20912154
}];
20922155
}
20932156

@@ -2126,6 +2189,19 @@ - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine streamInjectedStatusOfUrl:
21262189
}];
21272190
}
21282191

2192+
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine channelMediaRelayStateDidChange:(AgoraChannelMediaRelayState)state error:(AgoraChannelMediaRelayError)error {
2193+
[self sendEvent:AGMediaRelayStateChanged params:@{
2194+
@"state": @(state),
2195+
@"errorCode": @(error),
2196+
}];
2197+
}
2198+
2199+
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didReceiveChannelMediaRelayEvent:(AgoraChannelMediaRelayEvent)event {
2200+
[self sendEvent:AGReceivedChannelMediaRelay params:@{
2201+
@"event": @(event),
2202+
}];
2203+
}
2204+
21292205
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine receiveStreamMessageFromUid:(NSUInteger)uid streamId:(NSInteger)streamId data:(NSData *_Nonnull)data {
21302206
NSString *_data = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
21312207
[self sendEvent:AGReceiveStreamMessage params:@{
@@ -2138,7 +2214,7 @@ - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didOccurStreamMessageError
21382214
[self sendEvent:AGOccurStreamMessageError params:@{
21392215
@"uid": @(uid),
21402216
@"streamId": @(streamId),
2141-
@"error": @(error),
2217+
@"errorCode": @(error),
21422218
@"missed": @(missed),
21432219
@"cached": @(cached)
21442220
}];

0 commit comments

Comments
 (0)