From 431495e839707ecf9bc7d664e4699dc5407dba85 Mon Sep 17 00:00:00 2001 From: lifujun <814084764@qq.com> Date: Tue, 30 Jun 2020 10:22:02 +0800 Subject: [PATCH] feat(mediaplayer): add liveStartIndex config --- .../java/com/cicada/player/nativeclass/PlayerConfig.java | 7 +++++++ .../src/main/jni/player/JavaPlayerConfig.cpp | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/PlayerConfig.java b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/PlayerConfig.java index 94da7fb16..c66425987 100644 --- a/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/PlayerConfig.java +++ b/platform/Android/source/premierlibrary/src/main/java/com/cicada/player/nativeclass/PlayerConfig.java @@ -103,6 +103,13 @@ private PlayerConfig() { * The maximum network reconnection attempts. networkTimeout specifies the reconnection interval. networkRetryCount=0 indicates that automatic reconnection is disabled. The reconnection policy depends on the app. Default: 2. */ public int mNetworkRetryCount = 2; + /** + * HLS直播时,起播分片位置。 + */ + /**** + * The start playing index of fragments, when HLS is live, . + */ + public int mLiveStartIndex = -3; private String[] mCustomHeaders = null; diff --git a/platform/Android/source/premierlibrary/src/main/jni/player/JavaPlayerConfig.cpp b/platform/Android/source/premierlibrary/src/main/jni/player/JavaPlayerConfig.cpp index 8a206b334..4265ba7e5 100644 --- a/platform/Android/source/premierlibrary/src/main/jni/player/JavaPlayerConfig.cpp +++ b/platform/Android/source/premierlibrary/src/main/jni/player/JavaPlayerConfig.cpp @@ -31,6 +31,7 @@ jfieldID gj_playerconfig_ClearFrameWhenStop = nullptr; jfieldID gj_playerconfig_EnableTunnelRender = nullptr; jfieldID gj_playerconfig_UserAgent = nullptr; jfieldID gj_playerconfig_NetworkRetryCount = nullptr; +jfieldID gj_playerconfig_LiveStartIndex = nullptr; void JavaPlayerConfig::init(JNIEnv *env) @@ -84,6 +85,9 @@ void JavaPlayerConfig::init(JNIEnv *env) gj_playerconfig_NetworkRetryCount = env->GetFieldID(gj_PlayerConfig_class, "mNetworkRetryCount", "I"); + gj_playerconfig_LiveStartIndex = env->GetFieldID(gj_PlayerConfig_class, + "mLiveStartIndex", + "I"); } } @@ -117,6 +121,8 @@ jobject JavaPlayerConfig::getJPlayerConfig(JNIEnv *mEnv, const MediaPlayerConfig (jboolean) (playerConfig->bEnableTunnelRender)); mEnv->SetIntField(jPlayerConfig, gj_playerconfig_NetworkRetryCount, playerConfig->networkRetryCount); + mEnv->SetIntField(jPlayerConfig, gj_playerconfig_LiveStartIndex, + playerConfig->liveStartIndex); NewStringUTF tmpreferrer(mEnv, playerConfig->referer.c_str()); jstring referrer = tmpreferrer.getString(); mEnv->SetObjectField(jPlayerConfig, gj_playerconfig_Referrer, referrer); @@ -179,6 +185,8 @@ MediaPlayerConfig JavaPlayerConfig::convertTo(JNIEnv *env, jobject playerConfig) gj_playerconfig_EnableTunnelRender); jint networkRetryCount = env->GetIntField(playerConfig, gj_playerconfig_NetworkRetryCount); + jint liveStartIndex = env->GetIntField(playerConfig, + gj_playerconfig_LiveStartIndex); GetStringUTFChars tmpHttpProxy(env, httpProxyStr); char *httpProxy = tmpHttpProxy.getChars(); GetStringUTFChars tmpreferrer(env, referrerStr); @@ -196,6 +204,7 @@ MediaPlayerConfig JavaPlayerConfig::convertTo(JNIEnv *env, jobject playerConfig) config.bClearShowWhenStop = clearFrameWhenStop; config.bEnableTunnelRender = enableTunnelRender; config.networkRetryCount = networkRetryCount; + config.liveStartIndex = liveStartIndex; CallObjectMethod getHeaderMethod(env, playerConfig, gj_playerconfig_getCustomHeaders); jobjectArray headersArray = (jobjectArray) getHeaderMethod.getValue();