From c8f9a7396db512519a75f3221a808fc053925844 Mon Sep 17 00:00:00 2001 From: lifujun <814084764@qq.com> Date: Tue, 2 Jun 2020 11:56:12 +0800 Subject: [PATCH] feat(android): add setIpResolveType api --- .../java/com/cicada/player/CicadaPlayer.java | 24 +++++++++++++++++++ .../com/cicada/player/CicadaPlayerImpl.java | 4 ++++ .../player/nativeclass/NativePlayerBase.java | 5 ++++ .../src/main/jni/player/NativeBase.cpp | 10 ++++++++ .../src/main/jni/player/NativeBase.h | 2 ++ 5 files changed, 45 insertions(+) diff --git a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayer.java b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayer.java index 39eb95ebf..2c0d3db3e 100644 --- a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayer.java +++ b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayer.java @@ -1362,4 +1362,28 @@ public interface OnVideoRenderedListener{ * @param color ARGB */ abstract public void setVideoBackgroundColor(int color); + + /** + * IP 解析类型 + */ + public static enum IPResolveType { + /** + * 任意类型 + */ + IpResolveWhatEver, + /** + * 只使用ipV4 + */ + IpResolveV4, + /** + * 只使用ipV6 + */ + IpResolveV6 + } + + /** + * 设置网络ip解析类型 + * @param type 见 {@link IPResolveType} + */ + abstract public void setIPResolveType(IPResolveType type); } diff --git a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayerImpl.java b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayerImpl.java index 7cb9ab194..788443aa8 100644 --- a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayerImpl.java +++ b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/CicadaPlayerImpl.java @@ -1050,6 +1050,10 @@ public void setVideoBackgroundColor(int color) { mCorePlayer.setVideoBackgroundColor(color); } + @Override + public void setIPResolveType(IPResolveType type) { + mCorePlayer.setIPResolveType(type); + } } diff --git a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/NativePlayerBase.java b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/NativePlayerBase.java index d99afc375..82122baf3 100644 --- a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/NativePlayerBase.java +++ b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/NativePlayerBase.java @@ -436,6 +436,10 @@ public void selectExtSubtitle(int index, boolean select){ nSelectExtSubtitle(index,select); } + public void setIPResolveType(CicadaPlayer.IPResolveType type) { + nSetIPResolveType(type.ordinal()); + } + public synchronized void setDefaultBandWidth(int bandWidth) { nSetDefaultBandWidth(bandWidth); } @@ -556,6 +560,7 @@ public static void setBlackType(int type) { protected static native void nSetBlackType(int type); + protected native void nSetIPResolveType(int type); //////==========--------------==================------------------================// diff --git a/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.cpp b/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.cpp index 302d738e8..b5cfdac1f 100644 --- a/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.cpp +++ b/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.cpp @@ -780,6 +780,15 @@ void NativeBase::java_SetBlackType(JNIEnv *env, jclass jclazz, jint type) } } +void NativeBase::java_SetIPResolveType(JNIEnv *env, jobject instance, jint type) +{ + AF_TRACE; + MediaPlayer *player = getPlayer(env, instance); + + if (player != nullptr) { + player->SetIPResolveType(static_cast((int)type)); + } +} jstring NativeBase::java_GetCacheFilePathByURL(JNIEnv *env, jobject instance, jstring URL) { @@ -967,6 +976,7 @@ static JNINativeMethod nativePlayer_method_table[] = { {"nSnapShot", "()V", (void *) NativeBase::java_SnapShot}, {"nGetSdkVersion", "()Ljava/lang/String;", (void *) NativeBase::java_GetSdkVersion}, {"nSetBlackType", "(I)V", (void *) NativeBase::java_SetBlackType}, + {"nSetIPResolveType", "(I)V", (void *) NativeBase::java_SetIPResolveType}, {"nGetCacheFilePath", "(Ljava/lang/String;)Ljava/lang/String;", (void *) NativeBase::java_GetCacheFilePathByURL}, {"nSetDefaultBandWidth", "(I)V", (void *) NativeBase::java_SetDefaultBandWidth}, diff --git a/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.h b/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.h index 11d9f1ad9..3ec9ff064 100644 --- a/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.h +++ b/platform/Android/source/premierlibrary/src/main/jni/player/NativeBase.h @@ -139,6 +139,8 @@ class NativeBase { static void java_SetBlackType(JNIEnv *env, jclass jclazz, jint type); + static void java_SetIPResolveType(JNIEnv *env, jobject jobj, jint type); + static jstring java_GetCacheFilePathByURL(JNIEnv *env, jobject instance, jstring URL); static void java_SetDefaultBandWidth(JNIEnv *env , jobject instance , jint defaultBandWidth);