AliVCSDK 6.17.0
阿里云音视频SDK,为视频开发者提供一站式接入服务
 
载入中...
搜索中...
未找到
AlivcLivePushInstance.java
1package com.alivc.live.pusher;
2
3import android.content.Context;
4import android.util.Log;
5
6import com.alivc.live.pusher.basic.BasicLivePusherJNI;
7import com.alivc.live.biz.manager.AlivcLiveCommonParams;
8import com.alivc.live.biz.utils.FileUtil;
9import com.aliyun.common.AlivcNativeLoader;
10
11import java.util.HashMap;
12
22@CalledByNative
23@Deprecated
25
26 private static final String TAG = "AlivcLivePushInstance";
27
28 // liball_in_one.so
29 private static final String LIB_SO_ALL_IN_ONE = "all_in_one";
30
31 private static final String KEY_SDCARD_FILE_PATH = "sdcard_file_path";
32 private static final String KEY_SDCARD_CACHE_PATH = "sdcard_cache_path";
33 private static final String KEY_PACKAGE_NAME = "package_name";
34
35 private static volatile boolean mIsLibLoaded = false;
36 private static volatile boolean mIsSdkInstanceLoaded = false;
37 private static volatile boolean mIsSdkConfigsLoaded = false;
38
39 private AlivcLivePushInstance() {
40 }
41
48 public static void loadInstance(Context context) {
50 loadSdkInstance(context);
51 loadSdkConfigs(context);
52 }
53
60 public static void loadLibrariesOnce() {
61 synchronized (AlivcLivePushInstance.class) {
62 if (!mIsLibLoaded) {
63 mIsLibLoaded = AlivcNativeLoader.loadLibrary(LIB_SO_ALL_IN_ONE);
64 if (mIsLibLoaded) {
65 Log.d(TAG, "load libraries success!");
66 Log.d(TAG, getSdkBuildInfo());
67 }
68 }
69 }
70 }
71
77 private static void loadSdkInstance(Context context) {
78 if (context == null) {
79 return;
80 }
81 AlivcLiveCommonParams.INSTANCE.initCommonProperties(context);
82 synchronized (AlivcLivePushInstance.class) {
83 if (!mIsSdkInstanceLoaded) {
84 HashMap<String, String> properties = AlivcLiveCommonParams.INSTANCE.getCommonProperties();
85 BasicLivePusherJNI.nativeInitSDKInstance(properties.keySet().toArray(new String[0]), properties.values().toArray(new String[0]));
86 Log.d(TAG, "load sdk instance success!");
87 Log.d(TAG, getSdkContextInfo());
88 mIsSdkInstanceLoaded = true;
89 }
90 }
91 }
92
97 public static String getSdkBuildInfo() {
98 return "---SDK_INFO---" + '\n' +
99 "DEBUG:" + BuildConfig.DEBUG + '\n' +
100 "BUILD_TYPE:" + BuildConfig.BUILD_TYPE + '\n' +
101 "BUILD_INTERACTIVE:" + BuildConfig.BUILD_INTERACTIVE + '\n' +
102 "HEAD_COMMIT_ID:" + BuildConfig.HEAD_COMMIT_ID + '\n' +
103 "MTL_BUILD_ID:" + BuildConfig.MTL_BUILD_ID + '\n' +
104 "MTL_BUILD_TIMESTAMP:" + BuildConfig.MTL_BUILD_TIMESTAMP + '\n' +
105 "MTL_VERSION_CODE:" + BuildConfig.MTL_VERSION_CODE + '\n' +
106 "MTL_VERSION_NAME:" + BuildConfig.MTL_VERSION_NAME;
107 }
108
114 public static String getSdkContextInfo() {
115 HashMap<String, String> properties = AlivcLiveCommonParams.INSTANCE.getCommonProperties();
116 StringBuilder sb = new StringBuilder("---CONTEXT_INFO---\n");
117 for (String key : properties.keySet()) {
118 sb.append(key).append(":").append(properties.get(key)).append('\n');
119 }
120 return sb.toString().trim();
121 }
122
123 private static void loadSdkConfigs(Context context) {
124 if (context == null) {
125 return;
126 }
127 synchronized (AlivcLivePushInstance.class) {
128 if (!mIsSdkConfigsLoaded) {
129 Log.d(TAG, "load sdk configs success!");
130 HashMap<String, String> properties = new HashMap<>(4);
131 properties.put(KEY_SDCARD_FILE_PATH, FileUtil.getExternalFileFolder(context));
132 properties.put(KEY_SDCARD_CACHE_PATH, FileUtil.getExternalCacheFolder(context));
133 properties.put(KEY_PACKAGE_NAME, context.getPackageName());
134 BasicLivePusherJNI.nativeInitSDKConfigs(properties.keySet().toArray(new String[0]), properties.values().toArray(new String[0]));
135 mIsSdkConfigsLoaded = true;
136 }
137 }
138 }
139}