提交 0a65ab8a authored 作者: kongdywang's avatar kongdywang

fix missing interface error & update to 11.3.0

上级 cfbf7243
...@@ -122,3 +122,10 @@ Professional 分支:Android & iOS 端集成TXLiteAVSDK_Professional lastest版 ...@@ -122,3 +122,10 @@ Professional 分支:Android & iOS 端集成TXLiteAVSDK_Professional lastest版
- set Android TXLiteAVSDK_Player to 11.2.0.13154,tag:release_player_v11.2.0 - set Android TXLiteAVSDK_Player to 11.2.0.13154,tag:release_player_v11.2.0
- set iOS TXLiteAVSDK_Player to 11.2.14217, tag:release_player_v11.2.0 - set iOS TXLiteAVSDK_Player to 11.2.14217, tag:release_player_v11.2.0
#### Version: 11.3.0 2023.07.07
##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.3.0.13171,tag:release_player_v11.3.0
- set iOS TXLiteAVSDK_Player to 11.3.14327, tag:release_player_v11.3.0
\ No newline at end of file
...@@ -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 = '11.2.0' playerVersion = '11.3.0'
/* /*
在此处可以更换需要的SDK版本,替换为专业版为 com.tencent.liteav:LiteAVSDK_Professional:latest.release 在此处可以更换需要的SDK版本,替换为专业版为 com.tencent.liteav:LiteAVSDK_Professional:latest.release
其中 latest.release 可指定为自己需要的版本号,例如 "com.tencent.liteav:LiteAVSDK_Player:9.5.29035" ,写成 latest.release 则默认使用最新版本 其中 latest.release 可指定为自己需要的版本号,例如 "com.tencent.liteav:LiteAVSDK_Player:9.5.29035" ,写成 latest.release 则默认使用最新版本
......
...@@ -12,6 +12,7 @@ import com.tencent.rtmp.TXLiveBase; ...@@ -12,6 +12,7 @@ import com.tencent.rtmp.TXLiveBase;
import com.tencent.rtmp.TXLiveConstants; import com.tencent.rtmp.TXLiveConstants;
import com.tencent.rtmp.TXLivePlayConfig; import com.tencent.rtmp.TXLivePlayConfig;
import com.tencent.rtmp.TXLivePlayer; import com.tencent.rtmp.TXLivePlayer;
import com.tencent.rtmp.TXVodConstants;
import com.tencent.vod.flutter.messages.FtxMessages.BoolMsg; import com.tencent.vod.flutter.messages.FtxMessages.BoolMsg;
import com.tencent.vod.flutter.messages.FtxMessages.BoolPlayerMsg; import com.tencent.vod.flutter.messages.FtxMessages.BoolPlayerMsg;
import com.tencent.vod.flutter.messages.FtxMessages.DoublePlayerMsg; import com.tencent.vod.flutter.messages.FtxMessages.DoublePlayerMsg;
...@@ -151,6 +152,9 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener, ...@@ -151,6 +152,9 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener,
} else if (event == TXLiveConstants.PLAY_WARNING_HW_ACCELERATION_FAIL) { } else if (event == TXLiveConstants.PLAY_WARNING_HW_ACCELERATION_FAIL) {
mHardwareDecodeFail = true; mHardwareDecodeFail = true;
} }
if (event != TXVodConstants.VOD_PLAY_EVT_PLAY_PROGRESS) {
Log.e(TAG, "onLivePlayEvent:" + event + "," + bundle.getString(TXLiveConstants.EVT_DESCRIPTION));
}
mEventSink.success(CommonUtil.getParams(event, bundle)); mEventSink.success(CommonUtil.getParams(event, bundle));
} }
...@@ -253,22 +257,16 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener, ...@@ -253,22 +257,16 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener,
} }
} }
@Deprecated
void setPlayerAutoPlay(boolean isAutoPlay) { void setPlayerAutoPlay(boolean isAutoPlay) {
if (mLivePlayer != null) {
mLivePlayer.setAutoPlay(isAutoPlay);
}
} }
@Deprecated
void seekPlayer(float progress) { void seekPlayer(float progress) {
if (mLivePlayer != null) {
mLivePlayer.seek((int) progress);
}
} }
@Deprecated
void setPlayerRate(float rate) { void setPlayerRate(float rate) {
if (mLivePlayer != null) {
mLivePlayer.setRate(rate);
}
} }
void setPlayerLiveMode(int type) { void setPlayerLiveMode(int type) {
...@@ -305,17 +303,13 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener, ...@@ -305,17 +303,13 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener,
TXLiveBase.setAppID(appId); TXLiveBase.setAppID(appId);
} }
@Deprecated
private int preparePlayerLiveSeek(String domain, int bizId) { private int preparePlayerLiveSeek(String domain, int bizId) {
if (mLivePlayer != null) {
return mLivePlayer.prepareLiveSeek(domain, bizId);
}
return Uninitialized; return Uninitialized;
} }
@Deprecated
private int resumePlayerLive() { private int resumePlayerLive() {
if (mLivePlayer != null) {
return mLivePlayer.resumeLive();
}
return Uninitialized; return Uninitialized;
} }
...@@ -350,13 +344,6 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener, ...@@ -350,13 +344,6 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener,
return CommonUtil.boolMsgWith(r == 1); return CommonUtil.boolMsgWith(r == 1);
} }
@Override
public void setAutoPlay(@NonNull BoolPlayerMsg isAutoPlay) {
if (null != isAutoPlay.getValue()) {
setPlayerAutoPlay(isAutoPlay.getValue());
}
}
@NonNull @NonNull
@Override @Override
public BoolMsg stop(@NonNull BoolPlayerMsg isNeedClear) { public BoolMsg stop(@NonNull BoolPlayerMsg isNeedClear) {
...@@ -407,13 +394,6 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener, ...@@ -407,13 +394,6 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener,
return CommonUtil.intMsgWith((long) switchPlayerStream(url.getValue())); return CommonUtil.intMsgWith((long) switchPlayerStream(url.getValue()));
} }
@Override
public void seek(@NonNull DoublePlayerMsg progress) {
if (progress.getValue() != null) {
seekPlayer(progress.getValue().floatValue());
}
}
@Override @Override
public void setAppID(@NonNull StringPlayerMsg appId) { public void setAppID(@NonNull StringPlayerMsg appId) {
if (null != appId.getValue()) { if (null != appId.getValue()) {
...@@ -421,25 +401,6 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener, ...@@ -421,25 +401,6 @@ public class FTXLivePlayer extends FTXBasePlayer implements ITXLivePlayListener,
} }
} }
@Override
public void prepareLiveSeek(@NonNull StringIntPlayerMsg playerMsg) {
preparePlayerLiveSeek(playerMsg.getStrValue(),
null != playerMsg.getIntValue() ? playerMsg.getIntValue().intValue() : 0);
}
@NonNull
@Override
public IntMsg resumeLive(@NonNull PlayerMsg playerMsg) {
return CommonUtil.intMsgWith((long) resumePlayerLive());
}
@Override
public void setRate(@NonNull DoublePlayerMsg rate) {
if (null != rate.getValue()) {
setPlayerRate(rate.getValue().floatValue());
}
}
@Override @Override
public void setConfig(@NonNull FTXLivePlayConfigPlayerMsg config) { public void setConfig(@NonNull FTXLivePlayConfigPlayerMsg config) {
setPlayerConfig(config); setPlayerConfig(config);
......
...@@ -14,6 +14,7 @@ import com.tencent.rtmp.TXBitrateItem; ...@@ -14,6 +14,7 @@ import com.tencent.rtmp.TXBitrateItem;
import com.tencent.rtmp.TXImageSprite; import com.tencent.rtmp.TXImageSprite;
import com.tencent.rtmp.TXLiveConstants; import com.tencent.rtmp.TXLiveConstants;
import com.tencent.rtmp.TXPlayInfoParams; import com.tencent.rtmp.TXPlayInfoParams;
import com.tencent.rtmp.TXVodConstants;
import com.tencent.rtmp.TXVodPlayConfig; import com.tencent.rtmp.TXVodPlayConfig;
import com.tencent.rtmp.TXVodPlayer; import com.tencent.rtmp.TXVodPlayer;
import com.tencent.vod.flutter.messages.FtxMessages; import com.tencent.vod.flutter.messages.FtxMessages;
...@@ -195,6 +196,9 @@ public class FTXVodPlayer extends FTXBasePlayer implements ITXVodPlayListener, F ...@@ -195,6 +196,9 @@ public class FTXVodPlayer extends FTXBasePlayer implements ITXVodPlayListener, F
} else if (event == TXLiveConstants.PLAY_WARNING_HW_ACCELERATION_FAIL) { } else if (event == TXLiveConstants.PLAY_WARNING_HW_ACCELERATION_FAIL) {
mHardwareDecodeFail = true; mHardwareDecodeFail = true;
} }
if (event != TXVodConstants.VOD_PLAY_EVT_PLAY_PROGRESS) {
Log.e(TAG, "onPlayEvent:" + event + "," + bundle.getString(TXLiveConstants.EVT_DESCRIPTION));
}
mEventSink.success(CommonUtil.getParams(event, bundle)); mEventSink.success(CommonUtil.getParams(event, bundle));
} }
......
...@@ -55,14 +55,6 @@ public class FTXLivePlayerDispatcher implements FtxMessages.TXFlutterLivePlayerA ...@@ -55,14 +55,6 @@ public class FTXLivePlayerDispatcher implements FtxMessages.TXFlutterLivePlayerA
return null; return null;
} }
@Override
public void setAutoPlay(@NonNull BoolPlayerMsg isAutoPlay) {
TXFlutterLivePlayerApi api = getPlayer(isAutoPlay.getPlayerId());
if (null != api) {
api.setAutoPlay(isAutoPlay);
}
}
@NonNull @NonNull
@Override @Override
public BoolMsg stop(@NonNull BoolPlayerMsg isNeedClear) { public BoolMsg stop(@NonNull BoolPlayerMsg isNeedClear) {
...@@ -133,14 +125,6 @@ public class FTXLivePlayerDispatcher implements FtxMessages.TXFlutterLivePlayerA ...@@ -133,14 +125,6 @@ public class FTXLivePlayerDispatcher implements FtxMessages.TXFlutterLivePlayerA
return null; return null;
} }
@Override
public void seek(@NonNull DoublePlayerMsg progress) {
TXFlutterLivePlayerApi api = getPlayer(progress.getPlayerId());
if (null != api) {
api.seek(progress);
}
}
@Override @Override
public void setAppID(@NonNull StringPlayerMsg appId) { public void setAppID(@NonNull StringPlayerMsg appId) {
TXFlutterLivePlayerApi api = getPlayer(appId.getPlayerId()); TXFlutterLivePlayerApi api = getPlayer(appId.getPlayerId());
...@@ -149,32 +133,6 @@ public class FTXLivePlayerDispatcher implements FtxMessages.TXFlutterLivePlayerA ...@@ -149,32 +133,6 @@ public class FTXLivePlayerDispatcher implements FtxMessages.TXFlutterLivePlayerA
} }
} }
@Override
public void prepareLiveSeek(@NonNull StringIntPlayerMsg playerMsg) {
TXFlutterLivePlayerApi api = getPlayer(playerMsg.getPlayerId());
if (null != api) {
api.prepareLiveSeek(playerMsg);
}
}
@NonNull
@Override
public IntMsg resumeLive(@NonNull PlayerMsg playerMsg) {
TXFlutterLivePlayerApi api = getPlayer(playerMsg.getPlayerId());
if (null != api) {
return api.resumeLive(playerMsg);
}
return null;
}
@Override
public void setRate(@NonNull DoublePlayerMsg rate) {
TXFlutterLivePlayerApi api = getPlayer(rate.getPlayerId());
if (null != api) {
api.setRate(rate);
}
}
@Override @Override
public void setConfig(@NonNull FTXLivePlayConfigPlayerMsg config) { public void setConfig(@NonNull FTXLivePlayConfigPlayerMsg config) {
TXFlutterLivePlayerApi api = getPlayer(config.getPlayerId()); TXFlutterLivePlayerApi api = getPlayer(config.getPlayerId());
......
...@@ -53,8 +53,7 @@ class VideoSliderViewState extends State<VideoSliderView> { ...@@ -53,8 +53,7 @@ class VideoSliderViewState extends State<VideoSliderView> {
TXVodPlayerController controller = widget._controller as TXVodPlayerController; TXVodPlayerController controller = widget._controller as TXVodPlayerController;
controller.seek(_currentProgress * _videoDuration); controller.seek(_currentProgress * _videoDuration);
} else if (widget._controller is TXLivePlayerController) { } else if (widget._controller is TXLivePlayerController) {
TXLivePlayerController controller = widget._controller as TXLivePlayerController; LogUtils.w("Slider", "live not support seek");
controller.seek(_currentProgress * _videoDuration);
} }
print("_currentProgress:$_currentProgress,_videoDuration:" print("_currentProgress:$_currentProgress,_videoDuration:"
......
...@@ -125,13 +125,6 @@ static const int uninitialized = -1; ...@@ -125,13 +125,6 @@ static const int uninitialized = -1;
return [NSNumber numberWithLongLong:_textureId]; return [NSNumber numberWithLongLong:_textureId];
} }
- (void)setIsAutoPlay:(BOOL)b
{
if (_txLivePlayer != nil) {
_txLivePlayer.isAutoPlay = b;
}
}
- (void)setRenderRotation:(int)rotation - (void)setRenderRotation:(int)rotation
{ {
if (_txLivePlayer != nil) { if (_txLivePlayer != nil) {
...@@ -147,14 +140,6 @@ static const int uninitialized = -1; ...@@ -147,14 +140,6 @@ static const int uninitialized = -1;
return -1; return -1;
} }
- (int)seek:(float)progress
{
if (_txLivePlayer != nil) {
return [_txLivePlayer seek:progress];
}
return uninitialized;
}
- (int)startLivePlay:(NSString *)url type:(TX_Enum_PlayType)playType - (int)startLivePlay:(NSString *)url type:(TX_Enum_PlayType)playType
{ {
if (_txLivePlayer != nil) { if (_txLivePlayer != nil) {
...@@ -237,30 +222,6 @@ static const int uninitialized = -1; ...@@ -237,30 +222,6 @@ static const int uninitialized = -1;
[TXLiveBase setAppID:appId]; [TXLiveBase setAppID:appId];
} }
- (int)prepareLiveSeek:(NSString *)domain
bizId:(NSInteger)bizId
{
if (_txLivePlayer != nil) {
return [_txLivePlayer prepareLiveSeek:domain bizId:bizId];
}
return uninitialized;
}
- (int)resumeLive {
if (_txLivePlayer != nil) {
return [_txLivePlayer resumeLive];
}
return uninitialized;
}
- (void)setRate:(float)rate {
if (_txLivePlayer != nil) {
[_txLivePlayer setRate:rate];
}
}
- (void)setRenderMode:(int)renderMode { - (void)setRenderMode:(int)renderMode {
if (_txLivePlayer != nil) { if (_txLivePlayer != nil) {
[_txLivePlayer setRenderMode:renderMode]; [_txLivePlayer setRenderMode:renderMode];
...@@ -356,6 +317,7 @@ static const int uninitialized = -1; ...@@ -356,6 +317,7 @@ static const int uninitialized = -1;
// default: // default:
// break; // break;
// } // }
NSLog(@"onLivePlayEvent:%i,%@", EvtID, param[EVT_PLAY_DESCRIPTION]);
} }
/** /**
...@@ -438,11 +400,6 @@ static const int uninitialized = -1; ...@@ -438,11 +400,6 @@ static const int uninitialized = -1;
// FlutterMethodNotImplemented // FlutterMethodNotImplemented
} }
- (nullable IntMsg *)resumeLivePlayerMsg:(nonnull PlayerMsg *)playerMsg error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
int r = [self resumeLive];
return [CommonUtil intMsgWith:@(r)];
}
- (void)resumePlayerMsg:(nonnull PlayerMsg *)playerMsg error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error { - (void)resumePlayerMsg:(nonnull PlayerMsg *)playerMsg error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
[self resume]; [self resume];
} }
...@@ -455,10 +412,6 @@ static const int uninitialized = -1; ...@@ -455,10 +412,6 @@ static const int uninitialized = -1;
[self setAppID:appId.value]; [self setAppID:appId.value];
} }
- (void)setAutoPlayIsAutoPlay:(nonnull BoolPlayerMsg *)isAutoPlay error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
[self setIsAutoPlay:isAutoPlay.value.boolValue];
}
- (void)setConfigConfig:(nonnull FTXLivePlayConfigPlayerMsg *)config error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error { - (void)setConfigConfig:(nonnull FTXLivePlayConfigPlayerMsg *)config error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
[self setPlayerConfig:config]; [self setPlayerConfig:config];
} }
...@@ -471,10 +424,6 @@ static const int uninitialized = -1; ...@@ -471,10 +424,6 @@ static const int uninitialized = -1;
[self setMute:mute.value.boolValue]; [self setMute:mute.value.boolValue];
} }
- (void)setRateRate:(nonnull DoublePlayerMsg *)rate error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
[self setRate:rate.value.floatValue];
}
- (void)setVolumeVolume:(nonnull IntPlayerMsg *)volume error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error { - (void)setVolumeVolume:(nonnull IntPlayerMsg *)volume error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
[self setVolume:volume.value.intValue]; [self setVolume:volume.value.intValue];
} }
......
...@@ -428,7 +428,7 @@ static const int CODE_ON_RECEIVE_FIRST_FRAME = 2003; ...@@ -428,7 +428,7 @@ static const int CODE_ON_RECEIVE_FIRST_FRAME = 2003;
self->isVideoFirstFrameReceived = false; self->isVideoFirstFrameReceived = false;
}); });
} }
NSLog(@"onPlayEvent:%i,%@", EvtID, param[EVT_PLAY_DESCRIPTION]);
[_eventSink success:[FTXVodPlayer getParamsWithEvent:EvtID withParams:param]]; [_eventSink success:[FTXVodPlayer getParamsWithEvent:EvtID withParams:param]];
} }
......
...@@ -57,21 +57,6 @@ ...@@ -57,21 +57,6 @@
} }
} }
- (void)prepareLiveSeekPlayerMsg:(nonnull StringIntPlayerMsg *)playerMsg error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[playerMsg.playerId];
if(api) {
[api prepareLiveSeekPlayerMsg:playerMsg error:error];
}
}
- (nullable IntMsg *)resumeLivePlayerMsg:(nonnull PlayerMsg *)playerMsg error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[playerMsg.playerId];
if(api) {
return [api resumeLivePlayerMsg:playerMsg error:error];
}
return nil;
}
- (void)resumePlayerMsg:(nonnull PlayerMsg *)playerMsg error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error { - (void)resumePlayerMsg:(nonnull PlayerMsg *)playerMsg error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[playerMsg.playerId]; id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[playerMsg.playerId];
if(api) { if(api) {
...@@ -79,13 +64,6 @@ ...@@ -79,13 +64,6 @@
} }
} }
- (void)seekProgress:(nonnull DoublePlayerMsg *)progress error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[progress.playerId];
if(api) {
[api seekProgress:progress error:error];
}
}
- (void)setAppIDAppId:(nonnull StringPlayerMsg *)appId error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error { - (void)setAppIDAppId:(nonnull StringPlayerMsg *)appId error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[appId.playerId]; id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[appId.playerId];
if(api) { if(api) {
...@@ -93,13 +71,6 @@ ...@@ -93,13 +71,6 @@
} }
} }
- (void)setAutoPlayIsAutoPlay:(nonnull BoolPlayerMsg *)isAutoPlay error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[isAutoPlay.playerId];
if(api) {
[api setAutoPlayIsAutoPlay:isAutoPlay error:error];
}
}
- (void)setConfigConfig:(nonnull FTXLivePlayConfigPlayerMsg *)config error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error { - (void)setConfigConfig:(nonnull FTXLivePlayConfigPlayerMsg *)config error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[config.playerId]; id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[config.playerId];
if(api) { if(api) {
...@@ -121,13 +92,6 @@ ...@@ -121,13 +92,6 @@
} }
} }
- (void)setRateRate:(nonnull DoublePlayerMsg *)rate error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[rate.playerId];
if(api) {
[api setRateRate:rate error:error];
}
}
- (void)setVolumeVolume:(nonnull IntPlayerMsg *)volume error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error { - (void)setVolumeVolume:(nonnull IntPlayerMsg *)volume error:(FlutterError * _Nullable __autoreleasing * _Nonnull)error {
id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[volume.playerId]; id<TXFlutterLivePlayerApi> api = self.bridge.getPlayers[volume.playerId];
if(api) { if(api) {
......
// // Copyright (c) 2022 Tencent. All rights reserved. // // Copyright (c) 2022 Tencent. All rights reserved.
// Autogenerated from Pigeon (v9.0.7), do not edit directly. // Autogenerated from Pigeon (v9.1.2), do not edit directly.
// See also: https://pub.dev/packages/pigeon // See also: https://pub.dev/packages/pigeon
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
...@@ -544,8 +544,6 @@ NSObject<FlutterMessageCodec> *TXFlutterLivePlayerApiGetCodec(void); ...@@ -544,8 +544,6 @@ NSObject<FlutterMessageCodec> *TXFlutterLivePlayerApiGetCodec(void);
/// ///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable BoolMsg *)startLivePlayPlayerMsg:(StringIntPlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable BoolMsg *)startLivePlayPlayerMsg:(StringIntPlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置是否自动播放
- (void)setAutoPlayIsAutoPlay:(BoolPlayerMsg *)isAutoPlay error:(FlutterError *_Nullable *_Nonnull)error;
/// 停止播放 /// 停止播放
/// return 是否停止成功 /// return 是否停止成功
/// ///
...@@ -569,21 +567,8 @@ NSObject<FlutterMessageCodec> *TXFlutterLivePlayerApiGetCodec(void); ...@@ -569,21 +567,8 @@ NSObject<FlutterMessageCodec> *TXFlutterLivePlayerApiGetCodec(void);
/// ///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable IntMsg *)switchStreamUrl:(StringPlayerMsg *)url error:(FlutterError *_Nullable *_Nonnull)error; - (nullable IntMsg *)switchStreamUrl:(StringPlayerMsg *)url error:(FlutterError *_Nullable *_Nonnull)error;
/// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒
- (void)seekProgress:(DoublePlayerMsg *)progress error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置appId /// 设置appId
- (void)setAppIDAppId:(StringPlayerMsg *)appId error:(FlutterError *_Nullable *_Nonnull)error; - (void)setAppIDAppId:(StringPlayerMsg *)appId error:(FlutterError *_Nullable *_Nonnull)error;
/// 时移 暂不支持
/// @param domain
/// @param bizId
- (void)prepareLiveSeekPlayerMsg:(StringIntPlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 停止时移播放,返回直播
///
/// @return `nil` only when `error != nil`.
- (nullable IntMsg *)resumeLivePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置播放速率,暂不支持
- (void)setRateRate:(DoublePlayerMsg *)rate error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXLivePlayConfig] /// config @see [FTXLivePlayConfig]
- (void)setConfigConfig:(FTXLivePlayConfigPlayerMsg *)config error:(FlutterError *_Nullable *_Nonnull)error; - (void)setConfigConfig:(FTXLivePlayConfigPlayerMsg *)config error:(FlutterError *_Nullable *_Nonnull)error;
......
// // Copyright (c) 2022 Tencent. All rights reserved. // // Copyright (c) 2022 Tencent. All rights reserved.
// Autogenerated from Pigeon (v9.0.7), do not edit directly. // Autogenerated from Pigeon (v9.1.2), do not edit directly.
// See also: https://pub.dev/packages/pigeon // See also: https://pub.dev/packages/pigeon
#import "FtxMessages.h" #import "FtxMessages.h"
...@@ -2201,20 +2201,18 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2201,20 +2201,18 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
case 129: case 129:
return [BoolPlayerMsg fromList:[self readValue]]; return [BoolPlayerMsg fromList:[self readValue]];
case 130: case 130:
return [DoublePlayerMsg fromList:[self readValue]];
case 131:
return [FTXLivePlayConfigPlayerMsg fromList:[self readValue]]; return [FTXLivePlayConfigPlayerMsg fromList:[self readValue]];
case 132: case 131:
return [IntMsg fromList:[self readValue]]; return [IntMsg fromList:[self readValue]];
case 133: case 132:
return [IntPlayerMsg fromList:[self readValue]]; return [IntPlayerMsg fromList:[self readValue]];
case 134: case 133:
return [PipParamsPlayerMsg fromList:[self readValue]]; return [PipParamsPlayerMsg fromList:[self readValue]];
case 135: case 134:
return [PlayerMsg fromList:[self readValue]]; return [PlayerMsg fromList:[self readValue]];
case 136: case 135:
return [StringIntPlayerMsg fromList:[self readValue]]; return [StringIntPlayerMsg fromList:[self readValue]];
case 137: case 136:
return [StringPlayerMsg fromList:[self readValue]]; return [StringPlayerMsg fromList:[self readValue]];
default: default:
return [super readValueOfType:type]; return [super readValueOfType:type];
...@@ -2232,29 +2230,26 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2232,29 +2230,26 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} else if ([value isKindOfClass:[BoolPlayerMsg class]]) { } else if ([value isKindOfClass:[BoolPlayerMsg class]]) {
[self writeByte:129]; [self writeByte:129];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[DoublePlayerMsg class]]) {
[self writeByte:130];
[self writeValue:[value toList]];
} else if ([value isKindOfClass:[FTXLivePlayConfigPlayerMsg class]]) { } else if ([value isKindOfClass:[FTXLivePlayConfigPlayerMsg class]]) {
[self writeByte:131]; [self writeByte:130];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[IntMsg class]]) { } else if ([value isKindOfClass:[IntMsg class]]) {
[self writeByte:132]; [self writeByte:131];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[IntPlayerMsg class]]) { } else if ([value isKindOfClass:[IntPlayerMsg class]]) {
[self writeByte:133]; [self writeByte:132];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[PipParamsPlayerMsg class]]) { } else if ([value isKindOfClass:[PipParamsPlayerMsg class]]) {
[self writeByte:134]; [self writeByte:133];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[PlayerMsg class]]) { } else if ([value isKindOfClass:[PlayerMsg class]]) {
[self writeByte:135]; [self writeByte:134];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[StringIntPlayerMsg class]]) { } else if ([value isKindOfClass:[StringIntPlayerMsg class]]) {
[self writeByte:136]; [self writeByte:135];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[StringPlayerMsg class]]) { } else if ([value isKindOfClass:[StringPlayerMsg class]]) {
[self writeByte:137]; [self writeByte:136];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else { } else {
[super writeValue:value]; [super writeValue:value];
...@@ -2331,26 +2326,6 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO ...@@ -2331,26 +2326,6 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO
[channel setMessageHandler:nil]; [channel setMessageHandler:nil];
} }
} }
/// 设置是否自动播放
{
FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc]
initWithName:@"dev.flutter.pigeon.TXFlutterLivePlayerApi.setAutoPlay"
binaryMessenger:binaryMessenger
codec:TXFlutterLivePlayerApiGetCodec()];
if (api) {
NSCAssert([api respondsToSelector:@selector(setAutoPlayIsAutoPlay:error:)], @"TXFlutterLivePlayerApi api (%@) doesn't respond to @selector(setAutoPlayIsAutoPlay:error:)", api);
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
NSArray *args = message;
BoolPlayerMsg *arg_isAutoPlay = GetNullableObjectAtIndex(args, 0);
FlutterError *error;
[api setAutoPlayIsAutoPlay:arg_isAutoPlay error:&error];
callback(wrapResult(nil, error));
}];
} else {
[channel setMessageHandler:nil];
}
}
/// 停止播放 /// 停止播放
/// return 是否停止成功 /// return 是否停止成功
{ {
...@@ -2512,27 +2487,6 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO ...@@ -2512,27 +2487,6 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO
[channel setMessageHandler:nil]; [channel setMessageHandler:nil];
} }
} }
/// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒
{
FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc]
initWithName:@"dev.flutter.pigeon.TXFlutterLivePlayerApi.seek"
binaryMessenger:binaryMessenger
codec:TXFlutterLivePlayerApiGetCodec()];
if (api) {
NSCAssert([api respondsToSelector:@selector(seekProgress:error:)], @"TXFlutterLivePlayerApi api (%@) doesn't respond to @selector(seekProgress:error:)", api);
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
NSArray *args = message;
DoublePlayerMsg *arg_progress = GetNullableObjectAtIndex(args, 0);
FlutterError *error;
[api seekProgress:arg_progress error:&error];
callback(wrapResult(nil, error));
}];
} else {
[channel setMessageHandler:nil];
}
}
/// 设置appId /// 设置appId
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
...@@ -2553,68 +2507,6 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO ...@@ -2553,68 +2507,6 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO
[channel setMessageHandler:nil]; [channel setMessageHandler:nil];
} }
} }
/// 时移 暂不支持
/// @param domain
/// @param bizId
{
FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc]
initWithName:@"dev.flutter.pigeon.TXFlutterLivePlayerApi.prepareLiveSeek"
binaryMessenger:binaryMessenger
codec:TXFlutterLivePlayerApiGetCodec()];
if (api) {
NSCAssert([api respondsToSelector:@selector(prepareLiveSeekPlayerMsg:error:)], @"TXFlutterLivePlayerApi api (%@) doesn't respond to @selector(prepareLiveSeekPlayerMsg:error:)", api);
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
NSArray *args = message;
StringIntPlayerMsg *arg_playerMsg = GetNullableObjectAtIndex(args, 0);
FlutterError *error;
[api prepareLiveSeekPlayerMsg:arg_playerMsg error:&error];
callback(wrapResult(nil, error));
}];
} else {
[channel setMessageHandler:nil];
}
}
/// 停止时移播放,返回直播
{
FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc]
initWithName:@"dev.flutter.pigeon.TXFlutterLivePlayerApi.resumeLive"
binaryMessenger:binaryMessenger
codec:TXFlutterLivePlayerApiGetCodec()];
if (api) {
NSCAssert([api respondsToSelector:@selector(resumeLivePlayerMsg:error:)], @"TXFlutterLivePlayerApi api (%@) doesn't respond to @selector(resumeLivePlayerMsg:error:)", api);
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
NSArray *args = message;
PlayerMsg *arg_playerMsg = GetNullableObjectAtIndex(args, 0);
FlutterError *error;
IntMsg *output = [api resumeLivePlayerMsg:arg_playerMsg error:&error];
callback(wrapResult(output, error));
}];
} else {
[channel setMessageHandler:nil];
}
}
/// 设置播放速率,暂不支持
{
FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc]
initWithName:@"dev.flutter.pigeon.TXFlutterLivePlayerApi.setRate"
binaryMessenger:binaryMessenger
codec:TXFlutterLivePlayerApiGetCodec()];
if (api) {
NSCAssert([api respondsToSelector:@selector(setRateRate:error:)], @"TXFlutterLivePlayerApi api (%@) doesn't respond to @selector(setRateRate:error:)", api);
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
NSArray *args = message;
DoublePlayerMsg *arg_rate = GetNullableObjectAtIndex(args, 0);
FlutterError *error;
[api setRateRate:arg_rate error:&error];
callback(wrapResult(nil, error));
}];
} else {
[channel setMessageHandler:nil];
}
}
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXLivePlayConfig] /// config @see [FTXLivePlayConfig]
{ {
......
...@@ -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 = '11.2.0' s.version = '11.3.0'
s.summary = 'player plugin.' s.summary = 'player plugin.'
s.description = <<-DESC s.description = <<-DESC
player plugin. player plugin.
......
...@@ -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 = "11.2.0"; static const String PLAYER_VERSION = "11.3.0";
} }
\ No newline at end of file
...@@ -499,10 +499,6 @@ abstract class TXFlutterLivePlayerApi { ...@@ -499,10 +499,6 @@ abstract class TXFlutterLivePlayerApi {
/// (https://cloud.tencent.com/document/product/881/74588#.E8.B4.AD.E4.B9.B0.E5.B9.B6.E6.96.B0.E5.BB.BA.E6.AD.A3.E5.BC.8F.E7.89.88-license)。 /// (https://cloud.tencent.com/document/product/881/74588#.E8.B4.AD.E4.B9.B0.E5.B9.B6.E6.96.B0.E5.BB.BA.E6.AD.A3.E5.BC.8F.E7.89.88-license)。
BoolMsg startLivePlay(StringIntPlayerMsg playerMsg); BoolMsg startLivePlay(StringIntPlayerMsg playerMsg);
/// 设置是否自动播放
@deprecated
void setAutoPlay(BoolPlayerMsg isAutoPlay);
/// 停止播放 /// 停止播放
/// return 是否停止成功 /// return 是否停止成功
BoolMsg stop(BoolPlayerMsg isNeedClear); BoolMsg stop(BoolPlayerMsg isNeedClear);
...@@ -528,26 +524,9 @@ abstract class TXFlutterLivePlayerApi { ...@@ -528,26 +524,9 @@ abstract class TXFlutterLivePlayerApi {
/// 切换播放流 /// 切换播放流
IntMsg switchStream(StringPlayerMsg url); IntMsg switchStream(StringPlayerMsg url);
/// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒
void seek(DoublePlayerMsg progress);
/// 设置appId /// 设置appId
void setAppID(StringPlayerMsg appId); void setAppID(StringPlayerMsg appId);
/// 时移 暂不支持
/// @param domain
/// @param bizId
@deprecated
void prepareLiveSeek(StringIntPlayerMsg playerMsg);
/// 停止时移播放,返回直播
IntMsg resumeLive(PlayerMsg playerMsg);
/// 设置播放速率,暂不支持
@deprecated
void setRate(DoublePlayerMsg rate);
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXLivePlayConfig] /// config @see [FTXLivePlayConfig]
void setConfig(FTXLivePlayConfigPlayerMsg config); void setConfig(FTXLivePlayConfigPlayerMsg config);
......
...@@ -172,22 +172,6 @@ class TXLivePlayerController extends ChangeNotifier implements ValueListenable<T ...@@ -172,22 +172,6 @@ class TXLivePlayerController extends ChangeNotifier implements ValueListenable<T
_state = TXPlayerState.paused; _state = TXPlayerState.paused;
} }
/// 设置是否自动播放
@deprecated
Future<void> setIsAutoPlay({bool? isAutoPlay}) async {
await setAutoPlay(isAutoPlay: isAutoPlay);
}
/// 设置是否自动播放
@override
Future<void> setAutoPlay({bool? isAutoPlay}) async {
if (_isNeedDisposed) return;
await _initPlayer.future;
await _livePlayerApi.setAutoPlay(BoolPlayerMsg()
..value = isAutoPlay ?? false
..playerId = _playerId);
}
/// 停止播放 /// 停止播放
/// return 是否停止成功 /// return 是否停止成功
@override @override
...@@ -264,17 +248,6 @@ class TXLivePlayerController extends ChangeNotifier implements ValueListenable<T ...@@ -264,17 +248,6 @@ class TXLivePlayerController extends ChangeNotifier implements ValueListenable<T
return intMsg.value ?? -1; return intMsg.value ?? -1;
} }
/// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒
@override
Future<void> seek(double progress) async {
if (_isNeedDisposed) return;
await _initPlayer.future;
await _livePlayerApi.seek(DoublePlayerMsg()
..value = progress
..playerId = _playerId);
}
/// 设置appId /// 设置appId
Future<void> setAppID(int appId) async { Future<void> setAppID(int appId) async {
if (_isNeedDisposed) return; if (_isNeedDisposed) return;
...@@ -284,36 +257,6 @@ class TXLivePlayerController extends ChangeNotifier implements ValueListenable<T ...@@ -284,36 +257,6 @@ class TXLivePlayerController extends ChangeNotifier implements ValueListenable<T
..playerId = _playerId); ..playerId = _playerId);
} }
/// 时移 暂不支持
@deprecated
Future<void> prepareLiveSeek(String domain, int bizId) async {
if (_isNeedDisposed) return;
await _initPlayer.future;
await _livePlayerApi.prepareLiveSeek(StringIntPlayerMsg()
..strValue = domain
..intValue = bizId
..playerId = _playerId);
}
/// 停止时移播放,返回直播
Future<int> resumeLive() async {
if (_isNeedDisposed) return 0;
await _initPlayer.future;
IntMsg intMsg = await _livePlayerApi.resumeLive(PlayerMsg()..playerId = _playerId);
return intMsg.value ?? 0;
}
/// 设置播放速率,暂不支持
@deprecated
@override
Future<void> setRate(double rate) async {
if (_isNeedDisposed) return;
await _initPlayer.future;
await _livePlayerApi.setRate(DoublePlayerMsg()
..value = rate
..playerId = _playerId);
}
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXLivePlayConfig] /// config @see [FTXLivePlayConfig]
Future<void> setConfig(FTXLivePlayConfig config) async { Future<void> setConfig(FTXLivePlayConfig config) async {
......
...@@ -12,14 +12,11 @@ abstract class TXPlayerController { ...@@ -12,14 +12,11 @@ abstract class TXPlayerController {
TXPlayerValue? playerValue(); TXPlayerValue? playerValue();
Future<void> initialize({bool? onlyAudio}); Future<void> initialize({bool? onlyAudio});
Future<void> setAutoPlay({bool? isAutoPlay});
Future<bool> stop({bool isNeedClear = false}); Future<bool> stop({bool isNeedClear = false});
Future<bool> isPlaying(); Future<bool> isPlaying();
Future<void> pause(); Future<void> pause();
Future<void> resume(); Future<void> resume();
Future<void> setMute(bool mute); Future<void> setMute(bool mute);
Future<void> seek(double progress);
Future<void> setRate(double rate);
Future<bool> enableHardwareDecode(bool enable); Future<bool> enableHardwareDecode(bool enable);
Future<int> enterPictureInPictureMode( Future<int> enterPictureInPictureMode(
{String? backIconForAndroid, String? playIconForAndroid, String? pauseIconForAndroid, String? forwardIconForAndroid}); {String? backIconForAndroid, String? playIconForAndroid, String? pauseIconForAndroid, String? forwardIconForAndroid});
......
// Copyright (c) 2022 Tencent. All rights reserved. // Copyright (c) 2022 Tencent. All rights reserved.
part of SuperPlayer; part of SuperPlayer;
// Autogenerated from Pigeon (v9.1.2), do not edit directly.
// See also: https://pub.dev/packages/pigeon
// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
/// pigeon原始原件,由此文件生成messages原生通信代码 /// pigeon原始原件,由此文件生成messages原生通信代码
/// 生成命令如下,使用生成命令的时候,需要实现注释掉以上两个import导入 /// 生成命令如下,使用生成命令的时候,需要实现注释掉以上两个import导入
...@@ -2411,29 +2413,26 @@ class _TXFlutterLivePlayerApiCodec extends StandardMessageCodec { ...@@ -2411,29 +2413,26 @@ class _TXFlutterLivePlayerApiCodec extends StandardMessageCodec {
} else if (value is BoolPlayerMsg) { } else if (value is BoolPlayerMsg) {
buffer.putUint8(129); buffer.putUint8(129);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is DoublePlayerMsg) {
buffer.putUint8(130);
writeValue(buffer, value.encode());
} else if (value is FTXLivePlayConfigPlayerMsg) { } else if (value is FTXLivePlayConfigPlayerMsg) {
buffer.putUint8(131); buffer.putUint8(130);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is IntMsg) { } else if (value is IntMsg) {
buffer.putUint8(132); buffer.putUint8(131);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is IntPlayerMsg) { } else if (value is IntPlayerMsg) {
buffer.putUint8(133); buffer.putUint8(132);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is PipParamsPlayerMsg) { } else if (value is PipParamsPlayerMsg) {
buffer.putUint8(134); buffer.putUint8(133);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is PlayerMsg) { } else if (value is PlayerMsg) {
buffer.putUint8(135); buffer.putUint8(134);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is StringIntPlayerMsg) { } else if (value is StringIntPlayerMsg) {
buffer.putUint8(136); buffer.putUint8(135);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is StringPlayerMsg) { } else if (value is StringPlayerMsg) {
buffer.putUint8(137); buffer.putUint8(136);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else { } else {
super.writeValue(buffer, value); super.writeValue(buffer, value);
...@@ -2448,20 +2447,18 @@ class _TXFlutterLivePlayerApiCodec extends StandardMessageCodec { ...@@ -2448,20 +2447,18 @@ class _TXFlutterLivePlayerApiCodec extends StandardMessageCodec {
case 129: case 129:
return BoolPlayerMsg.decode(readValue(buffer)!); return BoolPlayerMsg.decode(readValue(buffer)!);
case 130: case 130:
return DoublePlayerMsg.decode(readValue(buffer)!);
case 131:
return FTXLivePlayConfigPlayerMsg.decode(readValue(buffer)!); return FTXLivePlayConfigPlayerMsg.decode(readValue(buffer)!);
case 132: case 131:
return IntMsg.decode(readValue(buffer)!); return IntMsg.decode(readValue(buffer)!);
case 133: case 132:
return IntPlayerMsg.decode(readValue(buffer)!); return IntPlayerMsg.decode(readValue(buffer)!);
case 134: case 133:
return PipParamsPlayerMsg.decode(readValue(buffer)!); return PipParamsPlayerMsg.decode(readValue(buffer)!);
case 135: case 134:
return PlayerMsg.decode(readValue(buffer)!); return PlayerMsg.decode(readValue(buffer)!);
case 136: case 135:
return StringIntPlayerMsg.decode(readValue(buffer)!); return StringIntPlayerMsg.decode(readValue(buffer)!);
case 137: case 136:
return StringPlayerMsg.decode(readValue(buffer)!); return StringPlayerMsg.decode(readValue(buffer)!);
default: default:
return super.readValueOfType(type, buffer); return super.readValueOfType(type, buffer);
...@@ -2542,29 +2539,6 @@ class TXFlutterLivePlayerApi { ...@@ -2542,29 +2539,6 @@ class TXFlutterLivePlayerApi {
} }
} }
/// 设置是否自动播放
Future<void> setAutoPlay(BoolPlayerMsg arg_isAutoPlay) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterLivePlayerApi.setAutoPlay', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_isAutoPlay]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
/// 停止播放 /// 停止播放
/// return 是否停止成功 /// return 是否停止成功
Future<BoolMsg> stop(BoolPlayerMsg arg_isNeedClear) async { Future<BoolMsg> stop(BoolPlayerMsg arg_isNeedClear) async {
...@@ -2765,30 +2739,6 @@ class TXFlutterLivePlayerApi { ...@@ -2765,30 +2739,6 @@ class TXFlutterLivePlayerApi {
} }
} }
/// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒
Future<void> seek(DoublePlayerMsg arg_progress) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterLivePlayerApi.seek', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_progress]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
/// 设置appId /// 设置appId
Future<void> setAppID(StringPlayerMsg arg_appId) async { Future<void> setAppID(StringPlayerMsg arg_appId) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
...@@ -2812,82 +2762,6 @@ class TXFlutterLivePlayerApi { ...@@ -2812,82 +2762,6 @@ class TXFlutterLivePlayerApi {
} }
} }
/// 时移 暂不支持
/// @param domain
/// @param bizId
Future<void> prepareLiveSeek(StringIntPlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterLivePlayerApi.prepareLiveSeek', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_playerMsg]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
/// 停止时移播放,返回直播
Future<IntMsg> resumeLive(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterLivePlayerApi.resumeLive', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_playerMsg]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else if (replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (replyList[0] as IntMsg?)!;
}
}
/// 设置播放速率,暂不支持
Future<void> setRate(DoublePlayerMsg arg_rate) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterLivePlayerApi.setRate', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_rate]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXLivePlayConfig] /// config @see [FTXLivePlayConfig]
Future<void> setConfig(FTXLivePlayConfigPlayerMsg arg_config) async { Future<void> setConfig(FTXLivePlayConfigPlayerMsg arg_config) async {
......
...@@ -201,7 +201,6 @@ class TXVodPlayerController extends ChangeNotifier implements ValueListenable<TX ...@@ -201,7 +201,6 @@ class TXVodPlayerController extends ChangeNotifier implements ValueListenable<TX
} }
/// 设置是否自动播放 /// 设置是否自动播放
@override
Future<void> setAutoPlay({bool? isAutoPlay}) async { Future<void> setAutoPlay({bool? isAutoPlay}) async {
if (_isNeedDisposed) return; if (_isNeedDisposed) return;
await _initPlayer.future; await _initPlayer.future;
...@@ -269,7 +268,6 @@ class TXVodPlayerController extends ChangeNotifier implements ValueListenable<TX ...@@ -269,7 +268,6 @@ class TXVodPlayerController extends ChangeNotifier implements ValueListenable<TX
/// 将视频播放进度定位到指定的进度进行播放 /// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒 /// progress 要定位的视频时间,单位 秒
@override
Future<void> seek(double progress) async { Future<void> seek(double progress) async {
if (_isNeedDisposed) return; if (_isNeedDisposed) return;
await _initPlayer.future; await _initPlayer.future;
...@@ -279,7 +277,6 @@ class TXVodPlayerController extends ChangeNotifier implements ValueListenable<TX ...@@ -279,7 +277,6 @@ class TXVodPlayerController extends ChangeNotifier implements ValueListenable<TX
} }
/// 设置播放速率,默认速率 1 /// 设置播放速率,默认速率 1
@override
Future<void> setRate(double rate) async { Future<void> setRate(double rate) async {
if (_isNeedDisposed) return; if (_isNeedDisposed) return;
await _initPlayer.future; await _initPlayer.future;
......
name: super_player name: super_player
description: player plugin. description: player plugin.
version: 11.2.0 version: 11.3.0
author: author:
homepage: homepage:
......
...@@ -201,7 +201,6 @@ class SuperPlayerController { ...@@ -201,7 +201,6 @@ class SuperPlayerController {
case TXVodPlayEvent.PLAY_ERR_NET_DISCONNECT: case TXVodPlayEvent.PLAY_ERR_NET_DISCONNECT:
case TXVodPlayEvent.PLAY_EVT_PLAY_END: case TXVodPlayEvent.PLAY_EVT_PLAY_END:
if (playerType == SuperPlayerType.LIVE_SHIFT) { if (playerType == SuperPlayerType.LIVE_SHIFT) {
_livePlayerController.resumeLive();
_observer?.onError(SuperPlayerCode.LIVE_SHIFT_FAIL, "时移失败,返回直播"); _observer?.onError(SuperPlayerCode.LIVE_SHIFT_FAIL, "时移失败,返回直播");
_updatePlayerState(SuperPlayerState.PLAYING); _updatePlayerState(SuperPlayerState.PLAYING);
} else { } else {
...@@ -712,12 +711,7 @@ class SuperPlayerController { ...@@ -712,12 +711,7 @@ class SuperPlayerController {
} }
} else { } else {
_updatePlayerType(SuperPlayerType.LIVE_SHIFT); _updatePlayerType(SuperPlayerType.LIVE_SHIFT);
_livePlayerController.seek(progress); LogUtils.w(TAG, "live not support seek");
bool isPlaying = await _livePlayerController.isPlaying();
// resume when not playing.if isPlaying is null,not resume
if (!isPlaying) {
resume();
}
} }
_observer?.onSeek(progress); _observer?.onSeek(progress);
} }
......
name: superplayer_widget name: superplayer_widget
description: superplayer,base on vodplayer description: superplayer,base on vodplayer
version: "11.2.0" version: "11.3.0"
environment: environment:
sdk: '>=2.17.0 <4.0.0' sdk: '>=2.17.0 <4.0.0'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论