Skip to content

Commit

Permalink
Merge pull request #31 from TeruyaHaroldo/master
Browse files Browse the repository at this point in the history
Added callbacks
  • Loading branch information
syanbo authored Dec 26, 2018
2 parents 9d45b4c + 2ef8b55 commit 7dc5af4
Show file tree
Hide file tree
Showing 6 changed files with 175 additions and 8 deletions.
13 changes: 11 additions & 2 deletions RtcEngine.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ export default {
Agora.init(options);
},
joinChannel(channelName = '00001', uid = 0){
Agora.joinChannel(channelName, uid)
Agora.joinChannel(channelName, uid);
},
joinChannelWithToken(token, channelName = '00001', uid = 0){
Agora.joinChannelWithToken(token, channelName, uid);
},
eventEmitter(fnConf) {
//there are no `removeListener` for NativeAppEventEmitter & DeviceEventEmitter
Expand All @@ -24,5 +27,11 @@ export default {
},
removeEmitter() {
this.listener && this.listener.remove();
}
},
enableLastmileTest() {
Agora.enableLastmileTest();
},
disableLastmileTest() {
Agora.disableLastmileTest();
},
};
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ android {
}

dependencies {
compile "com.facebook.react:react-native:+"
compile fileTree(dir: 'libs', include: ['*.jar'])
implementation "com.facebook.react:react-native:+"
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
17 changes: 16 additions & 1 deletion android/src/main/java/com/syan/agora/AgoraManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,21 @@ public AgoraManager joinChannel(String channel, int uid) {
return this;
}

public AgoraManager joinChannelWithToken(String token, String channel, int uid) {
mRtcEngine.joinChannel(token, channel, null, uid);
return this;
}

public AgoraManager enableLastmileTest() {
mRtcEngine.enableLastmileTest();
return this;
}

public AgoraManager disableLastmileTest() {
mRtcEngine.disableLastmileTest();
return this;
}

public void startPreview() {
mRtcEngine.startPreview();
}
Expand Down Expand Up @@ -129,4 +144,4 @@ public SurfaceView getSurfaceView(int uid) {
}


}
}
85 changes: 85 additions & 0 deletions android/src/main/java/com/syan/agora/AgoraModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -253,19 +253,104 @@ public void run() {
}
});
}

@Override
public void onLocalVideoStats(final LocalVideoStats stats) {
runOnUiThread(new Runnable() {
@Override
public void run() {
WritableMap map = Arguments.createMap();
map.putString("type", "onLocalVideoStats");
map.putInt("sentBitrate", stats.sentBitrate);
map.putInt("sentFrameRate", stats.sentFrameRate);
commonEvent(map);
}
});
}

@Override
public void onRemoteVideoStats(final RemoteVideoStats stats) {
runOnUiThread(new Runnable() {
@Override
public void run() {
WritableMap map = Arguments.createMap();
map.putString("type", "onRemoteVideoStats");
map.putInt("delay", stats.delay);
map.putInt("receivedBitrate", stats.receivedBitrate);
map.putInt("receivedFrameRate", stats.receivedFrameRate);
map.putInt("rxStreamType", stats.rxStreamType);
commonEvent(map);
}
});
}

@Override
public void onConnectionLost() {
runOnUiThread(new Runnable() {
@Override
public void run() {
WritableMap map = Arguments.createMap();
map.putString("type", "onConnectionLost");
commonEvent(map);
}
});
}

@Override
public void onNetworkQuality(final int uid, final int txQuality, final int rxQuality) {
runOnUiThread(new Runnable() {
@Override
public void run() {
WritableMap map = Arguments.createMap();
map.putString("type", "onNetworkQuality");
map.putInt("uid", uid);
map.putInt("txQuality", txQuality);
map.putInt("rxQuality", rxQuality);
commonEvent(map);
}
});
}

@Override
public void onLastmileQuality(final int quality) {
runOnUiThread(new Runnable() {
@Override
public void run() {
WritableMap map = Arguments.createMap();
map.putString("type", "onLastmileQuality");
map.putInt("quality", quality);
commonEvent(map);
}
});
}
};

@ReactMethod
public void init(ReadableMap options) {
AgoraManager.getInstance().init(getReactApplicationContext(), mRtcEventHandler, options);
}

@ReactMethod
public void enableLastmileTest() {
AgoraManager.getInstance().enableLastmileTest();
}

@ReactMethod
public void disableLastmileTest() {
AgoraManager.getInstance().disableLastmileTest();
}

//进入房间
@ReactMethod
public void joinChannel(String channelName, int uid) {
AgoraManager.getInstance().joinChannel(channelName, uid);
}

@ReactMethod
public void joinChannelWithToken(String token, String channelName, int uid) {
AgoraManager.getInstance().joinChannelWithToken(token, channelName, uid);
}

//退出
@ReactMethod
public void leaveChannel() {
Expand Down
62 changes: 60 additions & 2 deletions ios/RCTAgora/RCTAgora.m
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,27 @@ - (NSDictionary *)constantsToExport {

}

RCT_EXPORT_METHOD(enableLastmileTest) {
[self.rtcEngine enableLastmileTest];
}

RCT_EXPORT_METHOD(disableLastmileTest) {
[self.rtcEngine disableLastmileTest];
}

//加入房间
RCT_EXPORT_METHOD(joinChannel:(NSString *)channelName uid:(NSInteger)uid) {
//保存一下uid 在自定义视图使用
[AgoraConst share].localUid = uid;
[self.rtcEngine joinChannelByKey:nil channelName:channelName info:nil uid:uid joinSuccess:NULL];
}

RCT_EXPORT_METHOD(joinChannelWithToken:(NSString *)token channelName:(NSString *)channelName uid:(NSInteger)uid) {
//保存一下uid 在自定义视图使用
[AgoraConst share].localUid = uid;
[self.rtcEngine joinChannelByKey:token channelName:channelName info:nil uid:uid joinSuccess:NULL];
}

//离开频道
RCT_EXPORT_METHOD(leaveChannel){
[self.rtcEngine leaveChannel:^(AgoraRtcStats *stat) {
Expand Down Expand Up @@ -352,12 +366,57 @@ - (void)rtcEngine:(AgoraRtcEngineKit *)engine didAudioMuted:(BOOL)muted byUid:(N
- (void)rtcEngine:(AgoraRtcEngineKit *)engine didVideoMuted:(BOOL)muted byUid:(NSUInteger)uid {
NSMutableDictionary *params = @{}.mutableCopy;
params[@"type"] = @"onUserMuteVideo";
params[@"uid"] = [NSNumber numberWithInteger:uid];;
params[@"uid"] = [NSNumber numberWithInteger:uid];
params[@"muted"] = @(muted);

[self sendEvent:params];
}

- (void)rtcEngine:(AgoraRtcEngineKit *)engine localVideoStats:(AgoraRtcLocalVideoStats *)stats {
NSMutableDictionary *params = @{}.mutableCopy;
params[@"type"] = @"onLocalVideoStats";
params[@"sentBitrate"] = @(stats.sentBitrate);
params[@"sentFrameRate"] = @(stats.sentFrameRate);

[self sendEvent:params];
}

- (void)rtcEngine:(AgoraRtcEngineKit *)engine remoteVideoStats:(AgoraRtcRemoteVideoStats *)stats {
NSMutableDictionary *params = @{}.mutableCopy;
params[@"type"] = @"onRemoteVideoStats";
params[@"delay"] = @(stats.delay);
params[@"reivedBitrate"] = @(stats.receivedBitrate);
params[@"receivedFrameRate"] = @(stats.receivedFrameRate);
params[@"rxStreamType"] = @(stats.rxStreamType);

[self sendEvent:params];
}

- (void)rtcEngineConnectionDidLost:(AgoraRtcEngineKit *)engine {
NSMutableDictionary *params = @{}.mutableCopy;
params[@"type"] = @"onConnectionLost";

[self sendEvent:params];
}

- (void)rtcEngine:(AgoraRtcEngineKit *)engine networkQuality:(NSUInteger)uid txQuality:(AgoraRtcQuality)txQuality rxQuality:(AgoraRtcQuality)rxQuality {
NSMutableDictionary *params = @{}.mutableCopy;
params[@"type"] = @"onNetworkQuality";
params[@"uid"] = @(uid);
params[@"txQuality"] = @(txQuality);
params[@"rxQuality"] = @(rxQuality);

[self sendEvent:params];
}

- (void)rtcEngine:(AgoraRtcEngineKit *)engine lastmileQuality:(AgoraRtcQuality)quality {
NSMutableDictionary *params = @{}.mutableCopy;
params[@"type"] = @"onLastmileQuality";
params[@"quality"] = @(quality);

[self sendEvent:params];
}

/*
音量提示回调
需要开启enableAudioVolumeIndication
Expand Down Expand Up @@ -419,4 +478,3 @@ - (dispatch_queue_t)methodQueue {
//}

@end

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-agora",
"version": "1.1.5",
"version": "1.2.5",
"description": "声网Agora",
"main": "index.js",
"scripts": {
Expand Down

0 comments on commit 7dc5af4

Please sign in to comment.