agoraservice 包

  • Go

更新时间不可用

agoraservice 包。作为 SDK 的入口,你可以通过 agoraservice 包创建媒体轨道和连接。

Initialize

Go
func Initialize(cfg *AgoraServiceConfig) int {
    if agoraService.inited {
        return 0
    }
    if agoraService.service == nil {
        agoraService.service = C.agora_service_create()
        if agoraService.service == nil {
            return -1
        }
    }

    ccfg := CAgoraServiceConfig(cfg)
    defer FreeCAgoraServiceConfig(ccfg)

    ret := int(C.agora_service_initialize(agoraService.service, ccfg))
    if ret != 0 {
        return ret
    }

    if cfg.LogPath != "" {
        logPath := C.CString(cfg.LogPath)
        defer C.free(unsafe.Pointer(logPath))
        logSize := 512 * 1024
        if cfg.LogSize > 0 {
            logSize = cfg.LogSize
        }
        C.agora_service_set_log_file(agoraService.service, logPath, C.uint(logSize))
    }
    agoraService.inited = true
    return 0
}
初始化 agoraservice 包。

参数

参数描述
cfg初始化配置。详见 AgoraServiceConfig。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

Release

Go
func Release() int {
    if !agoraService.inited {
        return 0
    }
    if agoraService.service != nil {
        ret := int(C.agora_service_release(agoraService.service))
        if ret != 0 {
            return ret
        }
        agoraService.service = nil
    }
    agoraService.inited = false
    return 0
}
释放 agoraservice 包占用的资源。

注意

Release 需要在非回调内的子线程调用,避免在回调中执行。