提交 bad4fb1d authored 作者: kongdywang's avatar kongdywang

1. vod support autoRotate

2. update to 12.7.2 3. fix known issue
上级 16c92d6d
#### Version: 12.7.2 2025.08.29
##### Features:
- VOD supports the autoRotate configuration.
- set Android TXLiteAVSDK to 12.7.0.19083
- set iOS TXLiteAVSDK to 12.7.19324
- Fix known issue
#### Version: 12.7.1 2025.08.13 #### Version: 12.7.1 2025.08.13
##### Features: ##### Features:
......
...@@ -5,7 +5,7 @@ buildLog() { ...@@ -5,7 +5,7 @@ buildLog() {
} }
inputVersion=$1 inputVersion=$1
export VERSION_NAME="12.7.1" export VERSION_NAME="12.7.2"
if [ -n "$inputVersion" ]; then if [ -n "$inputVersion" ]; then
VERSION_NAME=$inputVersion VERSION_NAME=$inputVersion
fi fi
......
...@@ -4,7 +4,7 @@ rootProject.ext { ...@@ -4,7 +4,7 @@ rootProject.ext {
supportSdkVersion = "26.0.1" supportSdkVersion = "26.0.1"
minSdkVersion = 19 minSdkVersion = 19
targetSdkVersion = 28 targetSdkVersion = 28
playerVersion = "12.7.1" playerVersion = "12.7.2"
compat = "androidx.appcompat:appcompat:1.6.1" compat = "androidx.appcompat:appcompat:1.6.1"
/** /**
...@@ -14,5 +14,5 @@ rootProject.ext { ...@@ -14,5 +14,5 @@ rootProject.ext {
Professional SDK: liteavSdk="com.tencent.liteav:LiteAVSDK_Professional:latest.release" Professional SDK: liteavSdk="com.tencent.liteav:LiteAVSDK_Professional:latest.release"
If you want to specify the SDK version(eg 11.7.0.13946), use: liteavSdk="com.tencent.liteav:LiteAVSDK_Player:11.7.0.13946" If you want to specify the SDK version(eg 11.7.0.13946), use: liteavSdk="com.tencent.liteav:LiteAVSDK_Player:11.7.0.13946"
*/ */
liteavSdk="com.tencent.liteav:LiteAVSDK_Player:12.7.0.19072" liteavSdk="com.tencent.liteav:LiteAVSDK_Player:12.7.0.19083"
} }
\ No newline at end of file
...@@ -84,6 +84,8 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi ...@@ -84,6 +84,8 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi
private final FTXRenderViewFactory mRenderViewFactory; private final FTXRenderViewFactory mRenderViewFactory;
private final Handler mUIHandler = new Handler(Looper.getMainLooper()); private final Handler mUIHandler = new Handler(Looper.getMainLooper());
private long mCurrentRenderMode = FTXPlayerConstants.FTXRenderMode.FULL_FILL_CONTAINER; private long mCurrentRenderMode = FTXPlayerConstants.FTXRenderMode.FULL_FILL_CONTAINER;
private float mCurrentRotation = 0;
private TXVodPlayConfig mCurConfig = new TXVodPlayConfig();
private final FTXPIPManager.PipCallback mPipCallback = new FTXPIPManager.PipCallback() { private final FTXPIPManager.PipCallback mPipCallback = new FTXPIPManager.PipCallback() {
@Override @Override
public void onPipResult(TXPipResult result) { public void onPipResult(TXPipResult result) {
...@@ -152,6 +154,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi ...@@ -152,6 +154,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi
mVodPlayer.setPlayerView((TXCloudVideoView) null); mVodPlayer.setPlayerView((TXCloudVideoView) null);
mVodPlayer = null; mVodPlayer = null;
} }
mCurrentRotation = 0;
mCurRenderView = null; mCurRenderView = null;
TXFlutterEngineHolder.getInstance().removeAppLifeListener(mAppLifeListener); TXFlutterEngineHolder.getInstance().removeAppLifeListener(mAppLifeListener);
releaseTXImageSprite(); releaseTXImageSprite();
...@@ -190,6 +193,11 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi ...@@ -190,6 +193,11 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi
return; return;
} }
} }
long rotation = bundle.getLong(TXVodConstants.EVT_KEY_VIDEO_ROTATION);
if (mCurConfig.isAutoRotate()) {
notifyTextureRotation(rotation);
}
mCurrentRotation = rotation;
break; break;
case TXLiveConstants.PLAY_WARNING_HW_ACCELERATION_FAIL: case TXLiveConstants.PLAY_WARNING_HW_ACCELERATION_FAIL:
mHardwareDecodeFail = true; mHardwareDecodeFail = true;
...@@ -273,6 +281,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi ...@@ -273,6 +281,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi
TXVodPlayConfig playConfig = new TXVodPlayConfig(); TXVodPlayConfig playConfig = new TXVodPlayConfig();
FTXVersionAdapter.enableCustomSubtitle(playConfig, 0); FTXVersionAdapter.enableCustomSubtitle(playConfig, 0);
FTXVersionAdapter.enableDrmLevel3(playConfig, true); FTXVersionAdapter.enableDrmLevel3(playConfig, true);
mCurConfig = playConfig;
mVodPlayer.setConfig(playConfig); mVodPlayer.setConfig(playConfig);
mVodPlayer.setVodSubtitleDataListener(new ITXVodPlayListener.ITXVodSubtitleDataListener() { mVodPlayer.setVodSubtitleDataListener(new ITXVodPlayListener.ITXVodSubtitleDataListener() {
@Override @Override
...@@ -310,6 +319,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi ...@@ -310,6 +319,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi
if (null != mCurRenderView) { if (null != mCurRenderView) {
mCurRenderView.setPlayer(this); mCurRenderView.setPlayer(this);
} }
mCurrentRotation = 0;
return mVodPlayer.startVodPlay(url); return mVodPlayer.startVodPlay(url);
} }
return Uninitialized; return Uninitialized;
...@@ -434,6 +444,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi ...@@ -434,6 +444,7 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi
TXVodPlayConfig playConfig = FTXTransformation.transformToVodConfig(config); TXVodPlayConfig playConfig = FTXTransformation.transformToVodConfig(config);
FTXVersionAdapter.enableCustomSubtitle(playConfig, 0); FTXVersionAdapter.enableCustomSubtitle(playConfig, 0);
FTXVersionAdapter.enableDrmLevel3(playConfig, true); FTXVersionAdapter.enableDrmLevel3(playConfig, true);
mCurConfig = playConfig;
mVodPlayer.setConfig(playConfig); mVodPlayer.setConfig(playConfig);
} }
} }
...@@ -896,6 +907,11 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi ...@@ -896,6 +907,11 @@ public class FTXVodPlayer extends FTXVodPlayerRenderHost implements ITXVodPlayLi
return mCurrentRenderMode; return mCurrentRenderMode;
} }
@Override
public float getRotation() {
return mCurrentRotation;
}
@Override @Override
public int getVideoWidth() { public int getVideoWidth() {
if (null != mVodPlayer) { if (null != mVodPlayer) {
......
...@@ -14,6 +14,8 @@ public interface FTXPlayerRenderSurfaceHost { ...@@ -14,6 +14,8 @@ public interface FTXPlayerRenderSurfaceHost {
long getPlayerRenderMode(); long getPlayerRenderMode();
float getRotation();
int getVideoWidth(); int getVideoWidth();
int getVideoHeight(); int getVideoHeight();
......
...@@ -78,6 +78,12 @@ public abstract class FTXVodPlayerRenderHost extends FTXBasePlayer implements FT ...@@ -78,6 +78,12 @@ public abstract class FTXVodPlayerRenderHost extends FTXBasePlayer implements FT
} }
} }
protected void notifyTextureRotation(float rotation) {
if (null != mRenderCarrier) {
mRenderCarrier.notifyTextureRotation(rotation);
}
}
@Override @Override
public FTXRenderCarrier getCurCarrier() { public FTXRenderCarrier getCurCarrier() {
return mRenderCarrier; return mRenderCarrier;
......
...@@ -43,6 +43,7 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener { ...@@ -43,6 +43,7 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener {
private int mWidth; private int mWidth;
private int mHeight; private int mHeight;
private float mRotation = 0;
private boolean mStart = false; private boolean mStart = false;
private final Lock mLock = new ReentrantLock(); private final Lock mLock = new ReentrantLock();
private long mPreTime = 0; private long mPreTime = 0;
...@@ -165,6 +166,7 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener { ...@@ -165,6 +166,7 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener {
mTextureRender = new FTXTextureRender(mViewWidth, mViewHeight); mTextureRender = new FTXTextureRender(mViewWidth, mViewHeight);
mTextureRender.surfaceCreated(); mTextureRender.surfaceCreated();
mTextureRender.updateSizeAndRenderMode(mWidth, mHeight, mRenderMode); mTextureRender.updateSizeAndRenderMode(mWidth, mHeight, mRenderMode);
mTextureRender.setRotationAngle(mRotation);
LiteavLog.d(TAG, "textureID=" + mTextureRender.getTextureID()); LiteavLog.d(TAG, "textureID=" + mTextureRender.getTextureID());
if (null == mInputSurface || needClearOld) { if (null == mInputSurface || needClearOld) {
mSurfaceTexture = new SurfaceTexture(mTextureRender.getTextureID()); mSurfaceTexture = new SurfaceTexture(mTextureRender.getTextureID());
...@@ -186,6 +188,15 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener { ...@@ -186,6 +188,15 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener {
} }
} }
public void updateRotation(float rotation) {
mRotation = rotation;
if (null != mTextureRender) {
mTextureRender.setRotationAngle(rotation);
} else {
LiteavLog.w(TAG, "mTextureRender is null");
}
}
public void setViewPortSize(int width, int height) { public void setViewPortSize(int width, int height) {
mViewWidth = width; mViewWidth = width;
mViewHeight = height; mViewHeight = height;
...@@ -303,10 +314,10 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener { ...@@ -303,10 +314,10 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener {
mEGLSaveDrawSurface = EGL14.eglGetCurrentSurface(EGL14.EGL_DRAW); mEGLSaveDrawSurface = EGL14.eglGetCurrentSurface(EGL14.EGL_DRAW);
mEGLSaveReadSurface = EGL14.eglGetCurrentSurface(EGL14.EGL_READ); mEGLSaveReadSurface = EGL14.eglGetCurrentSurface(EGL14.EGL_READ);
// 检查有效性 // // 检查有效性
if (mEGLSavedDisplay == EGL14.EGL_NO_DISPLAY || mEGLSavedContext == EGL14.EGL_NO_CONTEXT) { // if (mEGLSavedDisplay == EGL14.EGL_NO_DISPLAY || mEGLSavedContext == EGL14.EGL_NO_CONTEXT) {
LiteavLog.w(TAG, "Saving invalid EGL state"); // LiteavLog.w(TAG, "Saving invalid EGL state");
} // }
} catch (Exception e) { } catch (Exception e) {
LiteavLog.e(TAG, "Save EGL error: " + e); LiteavLog.e(TAG, "Save EGL error: " + e);
resetSavedEnvironment(); resetSavedEnvironment();
...@@ -357,10 +368,6 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener { ...@@ -357,10 +368,6 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener {
} }
} }
} else { } else {
// 没有保存环境时的默认处理
LiteavLog.w(TAG, "No valid EGL state to restore");
// 确保解绑当前上下文
if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) { if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) {
EGL14.eglMakeCurrent( EGL14.eglMakeCurrent(
mEGLDisplay, mEGLDisplay,
...@@ -467,11 +474,17 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener { ...@@ -467,11 +474,17 @@ public class FTXEGLRender implements SurfaceTexture.OnFrameAvailableListener {
LiteavLog.i(TAG, "stopRender"); LiteavLog.i(TAG, "stopRender");
// unLock render thread // unLock render thread
mStart = false; mStart = false;
mRotation = 0;
if (null != mTextureRender) {
mTextureRender.setRotationAngle(0);
}
saveCurrentEglEnvironment(); saveCurrentEglEnvironment();
final boolean contextCompare = mEGLContextEncoder.equals(mEGLSavedContext); final boolean contextCompare = mEGLContextEncoder.equals(mEGLSavedContext);
eglUninstall(isCompleteRelease); eglUninstall(isCompleteRelease);
mDrawHandlerThread.quitSafely(); if (null != mDrawHandlerThread) {
mDrawHandler = null; mDrawHandlerThread.quitSafely();
mDrawHandler = null;
}
if (!contextCompare) { if (!contextCompare) {
LiteavLog.d(TAG, "restoreEglEnvironment"); LiteavLog.d(TAG, "restoreEglEnvironment");
......
...@@ -55,6 +55,7 @@ public class FTXTextureRender { ...@@ -55,6 +55,7 @@ public class FTXTextureRender {
"}"; "}";
private final float[] projectionMatrix = new float[16]; private final float[] projectionMatrix = new float[16];
private final float[] rotationMatrix = new float[16];
private int mVideoFragmentProgram; private int mVideoFragmentProgram;
private int muMVPMatrixHandle; private int muMVPMatrixHandle;
...@@ -68,6 +69,8 @@ public class FTXTextureRender { ...@@ -68,6 +69,8 @@ public class FTXTextureRender {
private int mPortWidth; private int mPortWidth;
private int mPortHeight; private int mPortHeight;
private float rotationAngle = 90;
public FTXTextureRender(int width, int height) { public FTXTextureRender(int width, int height) {
mPortWidth = width; mPortWidth = width;
mPortHeight = height; mPortHeight = height;
...@@ -172,6 +175,10 @@ public class FTXTextureRender { ...@@ -172,6 +175,10 @@ public class FTXTextureRender {
updateSizeAndRenderMode(mVideoWidth, mVideoHeight, mRenderMode); updateSizeAndRenderMode(mVideoWidth, mVideoHeight, mRenderMode);
} }
public void setRotationAngle(float angle) {
rotationAngle = angle;
}
public void cleanDrawCache() { public void cleanDrawCache() {
GLES30.glViewport(0, 0, mPortWidth, mPortHeight); GLES30.glViewport(0, 0, mPortWidth, mPortHeight);
GLES30.glClear(GLES30.GL_COLOR_BUFFER_BIT); GLES30.glClear(GLES30.GL_COLOR_BUFFER_BIT);
...@@ -187,6 +194,10 @@ public class FTXTextureRender { ...@@ -187,6 +194,10 @@ public class FTXTextureRender {
GLES30.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, projectionMatrix, 0); GLES30.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, projectionMatrix, 0);
// OpenGL rotates counterclockwise, here it needs to be modified to rotate clockwise
Matrix.setRotateM(rotationMatrix, 0, rotationAngle, 0, 0, -1);
GLES30.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, rotationMatrix, 0);
GLES30.glActiveTexture(GLES30.GL_TEXTURE0); GLES30.glActiveTexture(GLES30.GL_TEXTURE0);
GLES30.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textureID[0]); GLES30.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textureID[0]);
GLES30.glUniform1i(maTextureHandle, 0); GLES30.glUniform1i(maTextureHandle, 0);
......
...@@ -12,6 +12,8 @@ public interface FTXRenderCarrier { ...@@ -12,6 +12,8 @@ public interface FTXRenderCarrier {
void notifyVideoResolutionChanged(int videoWidth, int videoHeight); void notifyVideoResolutionChanged(int videoWidth, int videoHeight);
void notifyTextureRotation(float rotation);
void updateRenderMode(long renderMode); void updateRenderMode(long renderMode);
void requestLayoutSizeByContainerSize(int viewWidth, int viewHeight); void requestLayoutSizeByContainerSize(int viewWidth, int viewHeight);
......
...@@ -30,6 +30,7 @@ public class FTXSurfaceView extends SurfaceView implements FTXRenderCarrier { ...@@ -30,6 +30,7 @@ public class FTXSurfaceView extends SurfaceView implements FTXRenderCarrier {
private int mVideoHeight = 0; private int mVideoHeight = 0;
private int mViewWidth = 0; private int mViewWidth = 0;
private int mViewHeight = 0; private int mViewHeight = 0;
private float mRotation = 0;
private final Object mLayoutLock = new Object(); private final Object mLayoutLock = new Object();
private FTXEGLRender mRender; private FTXEGLRender mRender;
private final SurfaceViewInnerListener mSurfaceListenerDelegate = new SurfaceViewInnerListener(this); private final SurfaceViewInnerListener mSurfaceListenerDelegate = new SurfaceViewInnerListener(this);
...@@ -69,6 +70,16 @@ public class FTXSurfaceView extends SurfaceView implements FTXRenderCarrier { ...@@ -69,6 +70,16 @@ public class FTXSurfaceView extends SurfaceView implements FTXRenderCarrier {
} }
} }
@Override
public void notifyTextureRotation(float rotation) {
if (mRotation != rotation) {
mRotation = rotation;
if (null != mRender) {
mRender.updateRotation(rotation);
}
}
}
@Override @Override
protected void onDetachedFromWindow() { protected void onDetachedFromWindow() {
super.onDetachedFromWindow(); super.onDetachedFromWindow();
...@@ -121,9 +132,11 @@ public class FTXSurfaceView extends SurfaceView implements FTXRenderCarrier { ...@@ -121,9 +132,11 @@ public class FTXSurfaceView extends SurfaceView implements FTXRenderCarrier {
mRenderMode = surfaceHost.getPlayerRenderMode(); mRenderMode = surfaceHost.getPlayerRenderMode();
mVideoWidth = surfaceHost.getVideoWidth(); mVideoWidth = surfaceHost.getVideoWidth();
mVideoHeight = surfaceHost.getVideoHeight(); mVideoHeight = surfaceHost.getVideoHeight();
mRotation = surfaceHost.getRotation();
updateVideoRenderMode(); updateVideoRenderMode();
notifyTextureRotation(mRotation);
LiteavLog.i(TAG, "updateSize, mVideoWidth:" + mVideoWidth + ",mVideoHeight:" LiteavLog.i(TAG, "updateSize, mVideoWidth:" + mVideoWidth + ",mVideoHeight:"
+ mVideoHeight + ",renderMode:" + mRenderMode); + mVideoHeight + ",renderMode:" + mRenderMode + ",mRotation:" + mRotation);
} }
} }
......
...@@ -31,6 +31,7 @@ public class FTXTextureView extends TextureView implements FTXRenderCarrier { ...@@ -31,6 +31,7 @@ public class FTXTextureView extends TextureView implements FTXRenderCarrier {
private int mVideoHeight = 0; private int mVideoHeight = 0;
private int mViewWidth = 0; private int mViewWidth = 0;
private int mViewHeight = 0; private int mViewHeight = 0;
private float mRotation = 0;
private FTXEGLRender mRender; private FTXEGLRender mRender;
private final Object mLayoutLock = new Object(); private final Object mLayoutLock = new Object();
private final TextureViewInnerListener mSurfaceListenerDelegate = new TextureViewInnerListener(this); private final TextureViewInnerListener mSurfaceListenerDelegate = new TextureViewInnerListener(this);
...@@ -70,6 +71,16 @@ public class FTXTextureView extends TextureView implements FTXRenderCarrier { ...@@ -70,6 +71,16 @@ public class FTXTextureView extends TextureView implements FTXRenderCarrier {
} }
} }
@Override
public void notifyTextureRotation(float rotation) {
if (mRotation != rotation) {
mRotation = rotation;
if (null != mRender) {
mRender.updateRotation(rotation);
}
}
}
@Override @Override
public void updateRenderMode(long renderMode) { public void updateRenderMode(long renderMode) {
if (mRenderMode != renderMode) { if (mRenderMode != renderMode) {
...@@ -111,7 +122,11 @@ public class FTXTextureView extends TextureView implements FTXRenderCarrier { ...@@ -111,7 +122,11 @@ public class FTXTextureView extends TextureView implements FTXRenderCarrier {
mRenderMode = surfaceHost.getPlayerRenderMode(); mRenderMode = surfaceHost.getPlayerRenderMode();
mVideoWidth = surfaceHost.getVideoWidth(); mVideoWidth = surfaceHost.getVideoWidth();
mVideoHeight = surfaceHost.getVideoHeight(); mVideoHeight = surfaceHost.getVideoHeight();
mRotation = surfaceHost.getRotation();
updateVideoRenderMode(); updateVideoRenderMode();
notifyTextureRotation(mRotation);
LiteavLog.i(TAG, "updateSize, mVideoWidth:" + mVideoWidth + ",mVideoHeight:"
+ mVideoHeight + ",renderMode:" + mRenderMode + ",mRotation:" + mRotation);
} }
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# #
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = 'super_player' s.name = 'super_player'
s.version = '12.7.1' s.version = '12.7.2'
s.summary = 'The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand).' s.summary = 'The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand).'
s.description = <<-DESC s.description = <<-DESC
player plugin. player plugin.
...@@ -26,7 +26,7 @@ player plugin. ...@@ -26,7 +26,7 @@ player plugin.
# Player_Premium SDK: s.dependency 'TXLiteAVSDK_Player_Premium' # Player_Premium SDK: s.dependency 'TXLiteAVSDK_Player_Premium'
# Professional SDK: s.dependency 'TXLiteAVSDK_Professional' # Professional SDK: s.dependency 'TXLiteAVSDK_Professional'
# If you want to specify the SDK version(eg 11.6.15041), use: s.dependency 'TXLiteAVSDK_Player','11.6.15041' # If you want to specify the SDK version(eg 11.6.15041), use: s.dependency 'TXLiteAVSDK_Player','11.6.15041'
s.dependency 'TXLiteAVSDK_Player','12.7.19272' s.dependency 'TXLiteAVSDK_Player','12.7.19324'
# s.dependency 'FTXPiPKit' # s.dependency 'FTXPiPKit'
s.vendored_frameworks = [ s.vendored_frameworks = [
'localdep/FTXPiPKit.xcframework' 'localdep/FTXPiPKit.xcframework'
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
part of SuperPlayer; part of SuperPlayer;
abstract class FPlayerPckInfo { abstract class FPlayerPckInfo {
static const String PLAYER_VERSION = "12.7.1"; static const String PLAYER_VERSION = "12.7.2";
} }
\ No newline at end of file
name: super_player name: super_player
description: The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand). description: The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand).
version: 12.7.1 version: 12.7.2
homepage: https://github.com/LiteAVSDK/Player_Flutter homepage: https://github.com/LiteAVSDK/Player_Flutter
environment: environment:
......
...@@ -3,5 +3,5 @@ part of demo_super_player_lib; ...@@ -3,5 +3,5 @@ part of demo_super_player_lib;
class PlayerConstants { class PlayerConstants {
static const PKG_NAME = "superplayer_widget"; static const PKG_NAME = "superplayer_widget";
static const String PLAYER_WIDGET_VERSION = "12.7.1"; static const String PLAYER_WIDGET_VERSION = "12.7.2";
} }
name: superplayer_widget name: superplayer_widget
description: superplayer,base on vodplayer description: superplayer,base on vodplayer
version: 12.7.1 version: 12.7.2
environment: environment:
sdk: '>=2.17.0 <4.0.0' sdk: '>=2.17.0 <4.0.0'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论