AgoraManager.smali
.class public Lcom/zhimi/agora/AgoraManager;
.super Ljava/lang/Object;
.source "AgoraManager.java"
# static fields
.field private static instance:Lcom/zhimi/agora/AgoraManager;
# instance fields
.field private mEventCallback:Lio/dcloud/feature/uniapp/bridge/UniJSCallback;
.field private mHandler:Landroid/os/Handler;
.field public mRtcEngine:Lio/agora/rtc2/RtcEngine;
.field private mRtcEngineEventHandler:Lio/agora/rtc2/IRtcEngineEventHandler;
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method private constructor <init>()V
.registers 3
.line 34
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
.line 28
iput-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
.line 30
iput-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mEventCallback:Lio/dcloud/feature/uniapp/bridge/UniJSCallback;
.line 217
new-instance v0, Landroid/os/Handler;
new-instance v1, Lcom/zhimi/agora/AgoraManager$1;
invoke-direct {v1, p0}, Lcom/zhimi/agora/AgoraManager$1;-><init>(Lcom/zhimi/agora/AgoraManager;)V
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Handler$Callback;)V
iput-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mHandler:Landroid/os/Handler;
.line 227
new-instance v0, Lcom/zhimi/agora/AgoraManager$2;
invoke-direct {v0, p0}, Lcom/zhimi/agora/AgoraManager$2;-><init>(Lcom/zhimi/agora/AgoraManager;)V
iput-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngineEventHandler:Lio/agora/rtc2/IRtcEngineEventHandler;
return-void
.end method
.method static synthetic access$000(Lcom/zhimi/agora/AgoraManager;)Lio/dcloud/feature/uniapp/bridge/UniJSCallback;
.registers 1
.line 26
iget-object p0, p0, Lcom/zhimi/agora/AgoraManager;->mEventCallback:Lio/dcloud/feature/uniapp/bridge/UniJSCallback;
return-object p0
.end method
.method static synthetic access$100(Lcom/zhimi/agora/AgoraManager;Ljava/lang/String;Ljava/lang/Object;)V
.registers 3
.line 26
invoke-direct {p0, p1, p2}, Lcom/zhimi/agora/AgoraManager;->onCallback(Ljava/lang/String;Ljava/lang/Object;)V
return-void
.end method
.method public static getInstance()Lcom/zhimi/agora/AgoraManager;
.registers 2
.line 37
sget-object v0, Lcom/zhimi/agora/AgoraManager;->instance:Lcom/zhimi/agora/AgoraManager;
if-nez v0, :cond_17
.line 38
const-class v0, Lcom/zhimi/agora/AgoraManager;
monitor-enter v0
.line 39
:try_start_7
sget-object v1, Lcom/zhimi/agora/AgoraManager;->instance:Lcom/zhimi/agora/AgoraManager;
if-nez v1, :cond_12
.line 40
new-instance v1, Lcom/zhimi/agora/AgoraManager;
invoke-direct {v1}, Lcom/zhimi/agora/AgoraManager;-><init>()V
sput-object v1, Lcom/zhimi/agora/AgoraManager;->instance:Lcom/zhimi/agora/AgoraManager;
.line 42
:cond_12
monitor-exit v0
goto :goto_17
:catchall_14
move-exception v1
monitor-exit v0
:try_end_16
.catchall {:try_start_7 .. :try_end_16} :catchall_14
throw v1
.line 44
:cond_17
:goto_17
sget-object v0, Lcom/zhimi/agora/AgoraManager;->instance:Lcom/zhimi/agora/AgoraManager;
return-object v0
.end method
.method private onCallback(Ljava/lang/String;Ljava/lang/Object;)V
.registers 5
.line 208
new-instance v0, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v0}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
const-string v1, "type"
.line 209
invoke-virtual {v0, v1, p1}, Lcom/alibaba/fastjson/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
const-string p1, "data"
.line 210
invoke-virtual {v0, p1, p2}, Lcom/alibaba/fastjson/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
.line 212
invoke-static {}, Landroid/os/Message;->obtain()Landroid/os/Message;
move-result-object p1
.line 213
iput-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
.line 214
iget-object p2, p0, Lcom/zhimi/agora/AgoraManager;->mHandler:Landroid/os/Handler;
invoke-virtual {p2, p1}, Landroid/os/Handler;->sendMessage(Landroid/os/Message;)Z
return-void
.end method
# virtual methods
.method public create(Landroid/content/Context;Ljava/lang/String;Lcom/alibaba/fastjson/JSONObject;)I
.registers 5
.line 52
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-nez v0, :cond_11
.line 54
:try_start_4
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngineEventHandler:Lio/agora/rtc2/IRtcEngineEventHandler;
invoke-static {p1, p2, v0}, Lio/agora/rtc2/RtcEngine;->create(Landroid/content/Context;Ljava/lang/String;Lio/agora/rtc2/IRtcEngineEventHandler;)Lio/agora/rtc2/RtcEngine;
move-result-object p1
iput-object p1, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
:try_end_c
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_c} :catch_d
goto :goto_11
:catch_d
move-exception p1
.line 56
invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V
.line 59
:cond_11
:goto_11
iget-object p1, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-eqz p1, :cond_50
if-eqz p3, :cond_4e
const-string p1, "channelProfile"
.line 63
invoke-virtual {p3, p1}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_28
.line 64
iget-object p2, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
invoke-virtual {p3, p1}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result p1
invoke-virtual {p2, p1}, Lio/agora/rtc2/RtcEngine;->setChannelProfile(I)I
:cond_28
const-string p1, "enableAudio"
.line 66
invoke-virtual {p3, p1}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_3b
.line 67
invoke-virtual {p3, p1}, Lcom/alibaba/fastjson/JSONObject;->getBooleanValue(Ljava/lang/String;)Z
move-result p1
if-eqz p1, :cond_3b
.line 69
iget-object p1, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
invoke-virtual {p1}, Lio/agora/rtc2/RtcEngine;->enableAudio()I
:cond_3b
const-string p1, "enableVideo"
.line 72
invoke-virtual {p3, p1}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_4e
.line 73
invoke-virtual {p3, p1}, Lcom/alibaba/fastjson/JSONObject;->getBooleanValue(Ljava/lang/String;)Z
move-result p1
if-eqz p1, :cond_4e
.line 75
iget-object p1, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
invoke-virtual {p1}, Lio/agora/rtc2/RtcEngine;->enableVideo()I
:cond_4e
const/4 p1, 0x0
return p1
:cond_50
const/4 p1, -0x1
return p1
.end method
.method public createDataStream(ZZ)I
.registers 4
.line 191
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-eqz v0, :cond_9
.line 192
invoke-virtual {v0, p1, p2}, Lio/agora/rtc2/RtcEngine;->createDataStream(ZZ)I
move-result p1
return p1
:cond_9
const/4 p1, -0x1
return p1
.end method
.method public destroy()V
.registers 2
.line 85
invoke-static {}, Lio/agora/rtc2/RtcEngine;->destroy()V
const/4 v0, 0x0
.line 86
iput-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mEventCallback:Lio/dcloud/feature/uniapp/bridge/UniJSCallback;
.line 87
iput-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
return-void
.end method
.method public getRtcEngine()Lio/agora/rtc2/RtcEngine;
.registers 2
.line 204
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
return-object v0
.end method
.method public joinChannel(Lcom/alibaba/fastjson/JSONObject;)V
.registers 6
.line 91
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-eqz v0, :cond_2b
if-eqz p1, :cond_2b
const-string v0, "token"
.line 92
invoke-virtual {p1, v0}, Lcom/alibaba/fastjson/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "channelId"
.line 93
invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const-string v2, "uid"
.line 94
invoke-virtual {p1, v2}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v2
const-string v3, "options"
.line 95
invoke-virtual {p1, v3}, Lcom/alibaba/fastjson/JSONObject;->getJSONObject(Ljava/lang/String;)Lcom/alibaba/fastjson/JSONObject;
move-result-object p1
const-class v3, Lio/agora/rtc2/ChannelMediaOptions;
invoke-static {p1, v3}, Lcom/alibaba/fastjson/JSON;->toJavaObject(Lcom/alibaba/fastjson/JSON;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lio/agora/rtc2/ChannelMediaOptions;
.line 96
iget-object v3, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
invoke-virtual {v3, v0, v1, v2, p1}, Lio/agora/rtc2/RtcEngine;->joinChannel(Ljava/lang/String;Ljava/lang/String;ILio/agora/rtc2/ChannelMediaOptions;)I
:cond_2b
return-void
.end method
.method public leaveChannel()V
.registers 2
.line 101
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-eqz v0, :cond_7
.line 102
invoke-virtual {v0}, Lio/agora/rtc2/RtcEngine;->leaveChannel()I
:cond_7
return-void
.end method
.method public sendStreamMessage(ILjava/lang/String;)V
.registers 4
.line 198
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-eqz v0, :cond_13
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_13
.line 199
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
invoke-virtual {p2}, Ljava/lang/String;->getBytes()[B
move-result-object p2
invoke-virtual {v0, p1, p2}, Lio/agora/rtc2/RtcEngine;->sendStreamMessage(I[B)I
:cond_13
return-void
.end method
.method public setEventCallback(Lio/dcloud/feature/uniapp/bridge/UniJSCallback;)V
.registers 2
.line 48
iput-object p1, p0, Lcom/zhimi/agora/AgoraManager;->mEventCallback:Lio/dcloud/feature/uniapp/bridge/UniJSCallback;
return-void
.end method
.method public startScreenCapture(Landroid/app/Activity;Lcom/alibaba/fastjson/JSONObject;)V
.registers 8
.line 107
iget-object v0, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-eqz v0, :cond_d3
const/4 v1, 0x3
.line 108
invoke-virtual {v0, v1}, Lio/agora/rtc2/RtcEngine;->setAudioScenario(I)I
.line 115
new-instance v0, Landroid/util/DisplayMetrics;
invoke-direct {v0}, Landroid/util/DisplayMetrics;-><init>()V
.line 116
invoke-virtual {p1}, Landroid/app/Activity;->getWindowManager()Landroid/view/WindowManager;
move-result-object p1
invoke-interface {p1}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;
move-result-object p1
invoke-virtual {p1, v0}, Landroid/view/Display;->getRealMetrics(Landroid/util/DisplayMetrics;)V
.line 117
new-instance p1, Lio/agora/rtc2/ScreenCaptureParameters;
invoke-direct {p1}, Lio/agora/rtc2/ScreenCaptureParameters;-><init>()V
.line 119
iget v1, v0, Landroid/util/DisplayMetrics;->widthPixels:I
const/16 v2, 0x438
invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I
move-result v1
.line 120
iget v0, v0, Landroid/util/DisplayMetrics;->heightPixels:I
const/16 v2, 0x780
invoke-static {v0, v2}, Ljava/lang/Math;->min(II)I
move-result v0
const/16 v2, 0x1e
if-eqz p2, :cond_c2
const-string/jumbo v3, "width"
.line 123
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_3e
.line 124
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v1
:cond_3e
const-string v3, "height"
.line 126
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_4a
.line 127
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v0
:cond_4a
const-string v3, "framerate"
.line 129
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_56
.line 130
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v2
:cond_56
const-string v3, "bitrate"
.line 132
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_66
.line 133
iget-object v4, p1, Lio/agora/rtc2/ScreenCaptureParameters;->videoCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v3
iput v3, v4, Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;->bitrate:I
:cond_66
const-string v3, "contentHint"
.line 135
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_76
.line 136
iget-object v4, p1, Lio/agora/rtc2/ScreenCaptureParameters;->videoCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v3
iput v3, v4, Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;->contentHint:I
:cond_76
const-string v3, "captureAudio"
.line 138
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_84
.line 139
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getBooleanValue(Ljava/lang/String;)Z
move-result v3
iput-boolean v3, p1, Lio/agora/rtc2/ScreenCaptureParameters;->captureAudio:Z
:cond_84
const-string v3, "captureVideo"
.line 141
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_92
.line 142
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getBooleanValue(Ljava/lang/String;)Z
move-result v3
iput-boolean v3, p1, Lio/agora/rtc2/ScreenCaptureParameters;->captureVideo:Z
:cond_92
const-string v3, "sampleRate"
.line 144
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_a2
.line 145
iget-object v4, p1, Lio/agora/rtc2/ScreenCaptureParameters;->audioCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$AudioCaptureParameters;
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v3
iput v3, v4, Lio/agora/rtc2/ScreenCaptureParameters$AudioCaptureParameters;->sampleRate:I
:cond_a2
const-string v3, "channels"
.line 147
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_b2
.line 148
iget-object v4, p1, Lio/agora/rtc2/ScreenCaptureParameters;->audioCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$AudioCaptureParameters;
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result v3
iput v3, v4, Lio/agora/rtc2/ScreenCaptureParameters$AudioCaptureParameters;->channels:I
:cond_b2
const-string v3, "captureSignalVolume"
.line 150
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_c2
.line 151
iget-object v4, p1, Lio/agora/rtc2/ScreenCaptureParameters;->audioCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$AudioCaptureParameters;
invoke-virtual {p2, v3}, Lcom/alibaba/fastjson/JSONObject;->getIntValue(Ljava/lang/String;)I
move-result p2
iput p2, v4, Lio/agora/rtc2/ScreenCaptureParameters$AudioCaptureParameters;->captureSignalVolume:I
.line 154
:cond_c2
iget-object p2, p1, Lio/agora/rtc2/ScreenCaptureParameters;->videoCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;
iput v1, p2, Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;->width:I
.line 155
iget-object p2, p1, Lio/agora/rtc2/ScreenCaptureParameters;->videoCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;
iput v0, p2, Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;->height:I
.line 156
iget-object p2, p1, Lio/agora/rtc2/ScreenCaptureParameters;->videoCaptureParameters:Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;
iput v2, p2, Lio/agora/rtc2/ScreenCaptureParameters$VideoCaptureParameters;->framerate:I
.line 159
iget-object p2, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
invoke-virtual {p2, p1}, Lio/agora/rtc2/RtcEngine;->startScreenCapture(Lio/agora/rtc2/ScreenCaptureParameters;)I
:cond_d3
return-void
.end method
.method public stopScreenCapture(Landroid/app/Activity;)V
.registers 3
.line 172
iget-object p1, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
if-eqz p1, :cond_d
.line 174
invoke-virtual {p1}, Lio/agora/rtc2/RtcEngine;->stopScreenCapture()I
.line 186
iget-object p1, p0, Lcom/zhimi/agora/AgoraManager;->mRtcEngine:Lio/agora/rtc2/RtcEngine;
const/4 v0, 0x0
invoke-virtual {p1, v0}, Lio/agora/rtc2/RtcEngine;->setAudioScenario(I)I
:cond_d
return-void
.end method