Sfoglia il codice sorgente

feat: 添加老版本兼容模式开启开关,默认情况下必须有vapc节点才能播放

hexleo 5 anni fa
parent
commit
07ed885e6f

+ 6 - 2
Android/PlayerProj/animplayer/src/main/java/com/tencent/qgame/animplayer/AnimConfigManager.kt

@@ -36,17 +36,21 @@ class AnimConfigManager(val player: AnimPlayer) {
      * 解析配置
      * @return true 解析成功 false 解析失败
      */
-    fun parseConfig(fileContainer: FileContainer, defaultVideoMode: Int, defaultFps: Int): Int {
+    fun parseConfig(fileContainer: FileContainer, enableVersion1: Boolean, defaultVideoMode: Int, defaultFps: Int): Int {
         try {
             isParsingConfig = true
             // 解析vapc
             val time = SystemClock.elapsedRealtime()
             val result = parse(fileContainer, defaultVideoMode, defaultFps)
-            ALog.i(TAG, "parseConfig cost=${SystemClock.elapsedRealtime() - time}ms")
+            ALog.i(TAG, "parseConfig cost=${SystemClock.elapsedRealtime() - time}ms enableVersion1=$enableVersion1 result=$result")
             if (!result) {
                 isParsingConfig = false
                 return Constant.REPORT_ERROR_TYPE_PARSE_CONFIG
             }
+            if (config?.isDefaultConfig == true && !enableVersion1) {
+                isParsingConfig = false
+                return Constant.REPORT_ERROR_TYPE_PARSE_CONFIG
+            }
             // 插件解析配置
             val resultCode = config?.let {
                 player.pluginManager.onConfigCreate(it)

+ 3 - 1
Android/PlayerProj/animplayer/src/main/java/com/tencent/qgame/animplayer/AnimPlayer.kt

@@ -42,6 +42,8 @@ class AnimPlayer(val animView: AnimView) {
         }
     var supportMaskBoolean : Boolean = false
     var maskEdgeBlurBoolean : Boolean = false
+    // 是否兼容老版本 默认不兼容
+    var enableVersion1 : Boolean = false
     // 视频模式
     var videoMode: Int = Constant.VIDEO_MODE_SPLIT_HORIZONTAL
     var isDetachedFromWindow = false
@@ -79,7 +81,7 @@ class AnimPlayer(val animView: AnimView) {
         }
         // 在线程中解析配置
         decoder?.renderThread?.handler?.post {
-            val result = configManager.parseConfig(fileContainer, videoMode, fps)
+            val result = configManager.parseConfig(fileContainer, enableVersion1, videoMode, fps)
             if (result != Constant.OK) {
                 decoder?.onFailed(result, Constant.getErrorMsg(result))
                 isStartRunning = false

+ 6 - 0
Android/PlayerProj/animplayer/src/main/java/com/tencent/qgame/animplayer/AnimView.kt

@@ -188,6 +188,12 @@ open class AnimView @JvmOverloads constructor(context: Context, attrs: Attribute
         player?.updateMaskConfig(maskConfig)
     }
 
+
+    @Deprecated("Compatible older version mp4, default false")
+    fun enableVersion1(enable: Boolean) {
+        player?.enableVersion1 = enable
+    }
+
     // 兼容老版本视频模式
     @Deprecated("Compatible older version mp4")
     fun setVideoMode(mode: Int) {