提交 7db2b9ce authored 作者: kongdywang's avatar kongdywang

1、add registerSysBrightness for control android brightness' observer

2、move restorePageBrightness from moreView to demoSuperPlayer
上级 3e550ab0
...@@ -85,6 +85,8 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -85,6 +85,8 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
private int mCurrentOrientation = FTXEvent.ORIENTATION_PORTRAIT_UP; private int mCurrentOrientation = FTXEvent.ORIENTATION_PORTRAIT_UP;
private final TXFlutterEngineHolder mEngineHolder = new TXFlutterEngineHolder(); private final TXFlutterEngineHolder mEngineHolder = new TXFlutterEngineHolder();
private boolean mIsBrightnessObserverRegistered = false;
private final FTXAudioManager.AudioFocusChangeListener audioFocusChangeListener = private final FTXAudioManager.AudioFocusChangeListener audioFocusChangeListener =
new FTXAudioManager.AudioFocusChangeListener() { new FTXAudioManager.AudioFocusChangeListener() {
@Override @Override
...@@ -102,8 +104,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -102,8 +104,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
@Override @Override
public void onChange(boolean selfChange, @NonNull Collection<Uri> uris, int flags) { public void onChange(boolean selfChange, @NonNull Collection<Uri> uris, int flags) {
super.onChange(selfChange, uris, flags); super.onChange(selfChange, uris, flags);
double systemBrightness = getSystemScreenBrightness(); setWindowBrightness(-1D);
setWindowBrightness(systemBrightness);
} }
}; };
...@@ -449,10 +450,23 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -449,10 +450,23 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter();
filter.addAction(VOLUME_CHANGED_ACTION); filter.addAction(VOLUME_CHANGED_ACTION);
mActivityPluginBinding.getActivity().registerReceiver(mVolumeBroadcastReceiver, filter); mActivityPluginBinding.getActivity().registerReceiver(mVolumeBroadcastReceiver, filter);
// brightness observer }
ContentResolver resolver = mActivityPluginBinding.getActivity().getContentResolver();
resolver.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS), public void enableBrightnessObserver(boolean enable) {
true, brightnessObserver); if (null != mActivityPluginBinding && !mActivityPluginBinding.getActivity().isDestroyed()) {
if (enable) {
if (!mIsBrightnessObserverRegistered) {
// brightness observer
ContentResolver resolver = mActivityPluginBinding.getActivity().getContentResolver();
resolver.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
true, brightnessObserver);
mIsBrightnessObserverRegistered = true;
}
} else {
mActivityPluginBinding.getActivity().getContentResolver().unregisterContentObserver(brightnessObserver);
mIsBrightnessObserverRegistered = false;
}
}
} }
/** /**
...@@ -464,7 +478,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -464,7 +478,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
try { try {
mTxAudioManager.removeAudioFocusChangedListener(audioFocusChangeListener); mTxAudioManager.removeAudioFocusChangedListener(audioFocusChangeListener);
mActivityPluginBinding.getActivity().unregisterReceiver(mVolumeBroadcastReceiver); mActivityPluginBinding.getActivity().unregisterReceiver(mVolumeBroadcastReceiver);
mActivityPluginBinding.getActivity().getContentResolver().unregisterContentObserver(brightnessObserver); enableBrightnessObserver(false);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -548,6 +562,13 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -548,6 +562,13 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
return intMsg; return intMsg;
} }
@Override
public void registerSysBrightness(@NonNull BoolMsg isRegister) {
if (null != isRegister.getValue()) {
enableBrightnessObserver(isRegister.getValue());
}
}
private class VolumeBroadcastReceiver extends BroadcastReceiver { private class VolumeBroadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
......
// // Copyright (c) 2022 Tencent. All rights reserved. // // Copyright (c) 2022 Tencent. All rights reserved.
// Autogenerated from Pigeon (v9.1.2), do not edit directly. // Autogenerated from Pigeon (v9.2.5), do not edit directly.
// See also: https://pub.dev/packages/pigeon // See also: https://pub.dev/packages/pigeon
package com.tencent.vod.flutter.messages; package com.tencent.vod.flutter.messages;
...@@ -42,7 +42,7 @@ public class FtxMessages { ...@@ -42,7 +42,7 @@ public class FtxMessages {
} }
@NonNull @NonNull
private static ArrayList<Object> wrapError(@NonNull Throwable exception) { protected static ArrayList<Object> wrapError(@NonNull Throwable exception) {
ArrayList<Object> errorList = new ArrayList<Object>(3); ArrayList<Object> errorList = new ArrayList<Object>(3);
if (exception instanceof FlutterError) { if (exception instanceof FlutterError) {
FlutterError error = (FlutterError) exception; FlutterError error = (FlutterError) exception;
...@@ -59,6 +59,10 @@ public class FtxMessages { ...@@ -59,6 +59,10 @@ public class FtxMessages {
} }
/** /**
* Pigeon original component, used to generate native communication code for `messages`.
* The generation command is as follows. When using the generation command,
* the two import statements above need to be implemented or commented out.
*
* pigeon原始原件,由此文件生成messages原生通信代码 * pigeon原始原件,由此文件生成messages原生通信代码
* 生成命令如下,使用生成命令的时候,需要实现注释掉以上两个import导入 * 生成命令如下,使用生成命令的时候,需要实现注释掉以上两个import导入
* *
...@@ -2466,11 +2470,11 @@ public class FtxMessages { ...@@ -2466,11 +2470,11 @@ public class FtxMessages {
BoolMsg startVideoOrientationService(); BoolMsg startVideoOrientationService();
/** The codec used by TXFlutterSuperPlayerPluginAPI. */ /** The codec used by TXFlutterSuperPlayerPluginAPI. */
static MessageCodec<Object> getCodec() { static @NonNull MessageCodec<Object> getCodec() {
return TXFlutterSuperPlayerPluginAPICodec.INSTANCE; return TXFlutterSuperPlayerPluginAPICodec.INSTANCE;
} }
/**Sets up an instance of `TXFlutterSuperPlayerPluginAPI` to handle messages through the `binaryMessenger`. */ /**Sets up an instance of `TXFlutterSuperPlayerPluginAPI` to handle messages through the `binaryMessenger`. */
static void setup(BinaryMessenger binaryMessenger, TXFlutterSuperPlayerPluginAPI api) { static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable TXFlutterSuperPlayerPluginAPI api) {
{ {
BasicMessageChannel<Object> channel = BasicMessageChannel<Object> channel =
new BasicMessageChannel<>( new BasicMessageChannel<>(
...@@ -2761,8 +2765,10 @@ public class FtxMessages { ...@@ -2761,8 +2765,10 @@ public class FtxMessages {
protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) { protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) {
switch (type) { switch (type) {
case (byte) 128: case (byte) 128:
return DoubleMsg.fromList((ArrayList<Object>) readValue(buffer)); return BoolMsg.fromList((ArrayList<Object>) readValue(buffer));
case (byte) 129: case (byte) 129:
return DoubleMsg.fromList((ArrayList<Object>) readValue(buffer));
case (byte) 130:
return IntMsg.fromList((ArrayList<Object>) readValue(buffer)); return IntMsg.fromList((ArrayList<Object>) readValue(buffer));
default: default:
return super.readValueOfType(type, buffer); return super.readValueOfType(type, buffer);
...@@ -2771,11 +2777,14 @@ public class FtxMessages { ...@@ -2771,11 +2777,14 @@ public class FtxMessages {
@Override @Override
protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) {
if (value instanceof DoubleMsg) { if (value instanceof BoolMsg) {
stream.write(128); stream.write(128);
writeValue(stream, ((BoolMsg) value).toList());
} else if (value instanceof DoubleMsg) {
stream.write(129);
writeValue(stream, ((DoubleMsg) value).toList()); writeValue(stream, ((DoubleMsg) value).toList());
} else if (value instanceof IntMsg) { } else if (value instanceof IntMsg) {
stream.write(129); stream.write(130);
writeValue(stream, ((IntMsg) value).toList()); writeValue(stream, ((IntMsg) value).toList());
} else { } else {
super.writeValue(stream, value); super.writeValue(stream, value);
...@@ -2814,13 +2823,19 @@ public class FtxMessages { ...@@ -2814,13 +2823,19 @@ public class FtxMessages {
*/ */
@NonNull @NonNull
IntMsg isDeviceSupportPip(); IntMsg isDeviceSupportPip();
/**
*
* register or unregister system brightness
*
*/
void registerSysBrightness(@NonNull BoolMsg isRegister);
/** The codec used by TXFlutterNativeAPI. */ /** The codec used by TXFlutterNativeAPI. */
static MessageCodec<Object> getCodec() { static @NonNull MessageCodec<Object> getCodec() {
return TXFlutterNativeAPICodec.INSTANCE; return TXFlutterNativeAPICodec.INSTANCE;
} }
/**Sets up an instance of `TXFlutterNativeAPI` to handle messages through the `binaryMessenger`. */ /**Sets up an instance of `TXFlutterNativeAPI` to handle messages through the `binaryMessenger`. */
static void setup(BinaryMessenger binaryMessenger, TXFlutterNativeAPI api) { static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable TXFlutterNativeAPI api) {
{ {
BasicMessageChannel<Object> channel = BasicMessageChannel<Object> channel =
new BasicMessageChannel<>( new BasicMessageChannel<>(
...@@ -3013,6 +3028,30 @@ public class FtxMessages { ...@@ -3013,6 +3028,30 @@ public class FtxMessages {
IntMsg output = api.isDeviceSupportPip(); IntMsg output = api.isDeviceSupportPip();
wrapped.add(0, output); wrapped.add(0, output);
} }
catch (Throwable exception) {
ArrayList<Object> wrappedError = wrapError(exception);
wrapped = wrappedError;
}
reply.reply(wrapped);
});
} else {
channel.setMessageHandler(null);
}
}
{
BasicMessageChannel<Object> channel =
new BasicMessageChannel<>(
binaryMessenger, "dev.flutter.pigeon.TXFlutterNativeAPI.registerSysBrightness", getCodec());
if (api != null) {
channel.setMessageHandler(
(message, reply) -> {
ArrayList<Object> wrapped = new ArrayList<Object>();
ArrayList<Object> args = (ArrayList<Object>) message;
BoolMsg isRegisterArg = (BoolMsg) args.get(0);
try {
api.registerSysBrightness(isRegisterArg);
wrapped.add(0, null);
}
catch (Throwable exception) { catch (Throwable exception) {
ArrayList<Object> wrappedError = wrapError(exception); ArrayList<Object> wrappedError = wrapError(exception);
wrapped = wrappedError; wrapped = wrappedError;
...@@ -3121,7 +3160,9 @@ public class FtxMessages { ...@@ -3121,7 +3160,9 @@ public class FtxMessages {
public interface TXFlutterVodPlayerApi { public interface TXFlutterVodPlayerApi {
/** /**
* 播放器初始化,创建共享纹理、初始化播放器 * 播放器初始化,创建共享纹理、初始化播放器
* @param onlyAudio 是否是纯音频模式 *
* To initialize the player, you would need to create a shared texture and initialize the player.
* @param onlyAudio 是否是纯音频模式 if pure audio mode
*/ */
@NonNull @NonNull
IntMsg initialize(@NonNull BoolPlayerMsg onlyAudio); IntMsg initialize(@NonNull BoolPlayerMsg onlyAudio);
...@@ -3131,8 +3172,16 @@ public class FtxMessages { ...@@ -3131,8 +3172,16 @@ public class FtxMessages {
* 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , * 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
* 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] * 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 * (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)。
* @param url : 视频播放地址 *
* return 是否播放成功 * Starting from version 10.7, the method `startPlay` has been changed to `startVodPlay` for playing videos via a URL.
* To play videos successfully, it is necessary to set the license by using the method `SuperPlayerPlugin#setGlobalLicense`.
* Failure to set the license will result in video playback failure (a black screen).
* Live streaming, short video, and video playback licenses can all be used. If you do not have any of the above licenses,
* you can apply for a free trial license to play videos normally[Quickly apply for a free trial version Licence]
* (https://cloud.tencent.com/act/event/License).Official licenses can be purchased
* (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).
* @param url : 视频播放地址 video playback address
* return 是否播放成功 if play successfully
*/ */
@NonNull @NonNull
BoolMsg startVodPlay(@NonNull StringPlayerMsg url); BoolMsg startVodPlay(@NonNull StringPlayerMsg url);
...@@ -3142,82 +3191,184 @@ public class FtxMessages { ...@@ -3142,82 +3191,184 @@ public class FtxMessages {
* 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , * 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
* 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] * 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 * (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)。
* @params : 见[TXPlayInfoParams] *
* return 是否播放成功 * Starting from version 10.7, the method "startPlayWithParams" has been changed to "startVodPlayWithParams" for playing videos using fileId.
* To play the video successfully, you need to set the Licence using "SuperPlayerPlugin#setGlobalLicense" method before playing the video.
* If you do not set the Licence, the video will not play (black screen). The Licence for live streaming,
* short video, and video playback can all be used. If you have not obtained the Licence, you can apply for a free trial version [here]
* (https://cloud.tencent.com/act/event/License) for normal playback. To use the official version, you need to [purchase]
* (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).
* @params : see[TXPlayInfoParams]
* return 是否播放成功 if play successful
*/ */
void startVodPlayWithParams(@NonNull TXPlayInfoParamsPlayerMsg params); void startVodPlayWithParams(@NonNull TXPlayInfoParamsPlayerMsg params);
/** 设置是否自动播放 */ /**
* 设置是否自动播放
*
* set autoplay
*/
void setAutoPlay(@NonNull BoolPlayerMsg isAutoPlay); void setAutoPlay(@NonNull BoolPlayerMsg isAutoPlay);
/** /**
* 停止播放 * 停止播放
* return 是否停止成功 *
* Stop playback
* return 是否停止成功 if stop successful
*/ */
@NonNull @NonNull
BoolMsg stop(@NonNull BoolPlayerMsg isNeedClear); BoolMsg stop(@NonNull BoolPlayerMsg isNeedClear);
/** 视频是否处于正在播放中 */ /**
* 视频是否处于正在播放中
*
* Is the video currently playing
*/
@NonNull @NonNull
BoolMsg isPlaying(@NonNull PlayerMsg playerMsg); BoolMsg isPlaying(@NonNull PlayerMsg playerMsg);
/** 视频暂停,必须在播放器开始播放的时候调用 */ /**
* 视频暂停,必须在播放器开始播放的时候调用
*
* pause video, it must be called when the player starts playing
*/
void pause(@NonNull PlayerMsg playerMsg); void pause(@NonNull PlayerMsg playerMsg);
/** 继续播放,在暂停的时候调用 */ /**
* 继续播放,在暂停的时候调用
*
* resume playback, it should be called when the video is paused
*/
void resume(@NonNull PlayerMsg playerMsg); void resume(@NonNull PlayerMsg playerMsg);
/** 设置是否静音 */ /**
* 设置是否静音
*
* Set whether to mute or not
*/
void setMute(@NonNull BoolPlayerMsg mute); void setMute(@NonNull BoolPlayerMsg mute);
/** 设置是否循环播放 */ /**
* 设置是否循环播放
*
* Set whether to loop playback or not
*/
void setLoop(@NonNull BoolPlayerMsg loop); void setLoop(@NonNull BoolPlayerMsg loop);
/** /**
* 将视频播放进度定位到指定的进度进行播放 * 将视频播放进度定位到指定的进度进行播放
* progress 要定位的视频时间,单位 秒 *
* Set the video playback progress to a specific time and start playing.
* progress 要定位的视频时间,单位 秒 The video playback time to be located, in seconds
*/ */
void seek(@NonNull DoublePlayerMsg progress); void seek(@NonNull DoublePlayerMsg progress);
/** 设置播放速率,默认速率 1 */ /**
* 设置播放速率,默认速率 1
*
* Set the playback speed, with a default speed of 1.
*/
void setRate(@NonNull DoublePlayerMsg rate); void setRate(@NonNull DoublePlayerMsg rate);
/** /**
* 获得播放视频解析出来的码率信息 * 获得播放视频解析出来的码率信息
*
* get the bitrate information extracted from playing a video
* return List<Map> * return List<Map>
* Bitrate键值:index 码率序号,width 码率对应视频宽度, * Bitrate:index 码率序号,
* height 码率对应视频高度, bitrate 码率值 * width 码率对应视频宽度,
* height 码率对应视频高度,
* bitrate 码率值
*
* Bitrate:index:bitrate index,
* width:the video with of this bitrate,
* height:the video height of this bitrate,
* bitrate:bitrate value
*/ */
@NonNull @NonNull
ListMsg getSupportedBitrate(@NonNull PlayerMsg playerMsg); ListMsg getSupportedBitrate(@NonNull PlayerMsg playerMsg);
/** 获得当前设置的码率序号 */ /**
* 获得当前设置的码率序号
*
* Get the index of the current bitrate setting
*/
@NonNull @NonNull
IntMsg getBitrateIndex(@NonNull PlayerMsg playerMsg); IntMsg getBitrateIndex(@NonNull PlayerMsg playerMsg);
/** 设置码率序号 */ /**
* 设置码率序号
*
* Set the index of the bitrate setting.
*/
void setBitrateIndex(@NonNull IntPlayerMsg index); void setBitrateIndex(@NonNull IntPlayerMsg index);
/** 设置视频播放开始时间,单位 秒 */ /**
* 设置视频播放开始时间,单位 秒
*
* Set the start time of the video playback, in seconds.
*/
void setStartTime(@NonNull DoublePlayerMsg startTime); void setStartTime(@NonNull DoublePlayerMsg startTime);
/** 设置视频声音 0~100 */ /**
* 设置视频声音 0~100
*
* Set the volume of the video, ranging from 0 to 100.
*/
void setAudioPlayOutVolume(@NonNull IntPlayerMsg volume); void setAudioPlayOutVolume(@NonNull IntPlayerMsg volume);
/** 请求获得音频焦点 */ /**
* 请求获得音频焦点
*
* Request audio focus.
*/
@NonNull @NonNull
BoolMsg setRequestAudioFocus(@NonNull BoolPlayerMsg focus); BoolMsg setRequestAudioFocus(@NonNull BoolPlayerMsg focus);
/** /**
* 设置播放器配置 * 设置播放器配置
* config @see [FTXVodPlayConfigPlayerMsg] *
* Set player configuration
* config @see [FTXVodPlayConfig]
*/ */
void setConfig(@NonNull FTXVodPlayConfigPlayerMsg config); void setConfig(@NonNull FTXVodPlayConfigPlayerMsg config);
/** 获得当前已经播放的时间,单位 秒 */ /**
* 获得当前已经播放的时间,单位 秒
*
* Get the current playback time, in seconds.
*/
@NonNull @NonNull
DoubleMsg getCurrentPlaybackTime(@NonNull PlayerMsg playerMsg); DoubleMsg getCurrentPlaybackTime(@NonNull PlayerMsg playerMsg);
/** 获得当前视频已缓存的时间 */ /**
* 获得当前视频已缓存的时间
*
* Get the current amount of video that has been buffered.
*/
@NonNull @NonNull
DoubleMsg getBufferDuration(@NonNull PlayerMsg playerMsg); DoubleMsg getBufferDuration(@NonNull PlayerMsg playerMsg);
/** 获得当前视频的可播放时间 */ /**
* 获得当前视频的可播放时间
*
* Get the current playable duration of the video.
*/
@NonNull @NonNull
DoubleMsg getPlayableDuration(@NonNull PlayerMsg playerMsg); DoubleMsg getPlayableDuration(@NonNull PlayerMsg playerMsg);
/** 获得当前播放视频的宽度 */ /**
* 获得当前播放视频的宽度
*
* Get the width of the currently playing video.
*/
@NonNull @NonNull
IntMsg getWidth(@NonNull PlayerMsg playerMsg); IntMsg getWidth(@NonNull PlayerMsg playerMsg);
/** 获得当前播放视频的高度 */ /**
* 获得当前播放视频的高度
*
* Get the height of the currently playing video.
*/
@NonNull @NonNull
IntMsg getHeight(@NonNull PlayerMsg playerMsg); IntMsg getHeight(@NonNull PlayerMsg playerMsg);
/** 设置播放视频的token */ /**
* 设置播放视频的token
*
* Set the token for playing the video.
*/
void setToken(@NonNull StringPlayerMsg token); void setToken(@NonNull StringPlayerMsg token);
/** 当前播放的视频是否循环播放 */ /**
* 当前播放的视频是否循环播放
*
* Is the currently playing video set to loop
*/
@NonNull @NonNull
BoolMsg isLoop(@NonNull PlayerMsg playerMsg); BoolMsg isLoop(@NonNull PlayerMsg playerMsg);
/** 开启/关闭硬件编码 */ /**
* 开启/关闭硬件编码
*
* Enable/Disable hardware encoding.
*/
@NonNull @NonNull
BoolMsg enableHardwareDecode(@NonNull BoolPlayerMsg enable); BoolMsg enableHardwareDecode(@NonNull BoolPlayerMsg enable);
/** /**
...@@ -3230,23 +3381,31 @@ public class FtxMessages { ...@@ -3230,23 +3381,31 @@ public class FtxMessages {
*/ */
@NonNull @NonNull
IntMsg enterPictureInPictureMode(@NonNull PipParamsPlayerMsg pipParamsMsg); IntMsg enterPictureInPictureMode(@NonNull PipParamsPlayerMsg pipParamsMsg);
/** 退出画中画,如果该播放器处于画中画模式 */ /**
* 退出画中画,如果该播放器处于画中画模式
*
* Exit picture-in-picture mode if the video player is in picture-in-picture mode.
*/
void exitPictureInPictureMode(@NonNull PlayerMsg playerMsg); void exitPictureInPictureMode(@NonNull PlayerMsg playerMsg);
void initImageSprite(@NonNull StringListPlayerMsg spriteInfo); void initImageSprite(@NonNull StringListPlayerMsg spriteInfo);
@NonNull @NonNull
UInt8ListMsg getImageSprite(@NonNull DoublePlayerMsg time); UInt8ListMsg getImageSprite(@NonNull DoublePlayerMsg time);
/** 获取总时长 */ /**
* 获取总时长
*
* To get the total duration
*/
@NonNull @NonNull
DoubleMsg getDuration(@NonNull PlayerMsg playerMsg); DoubleMsg getDuration(@NonNull PlayerMsg playerMsg);
/** The codec used by TXFlutterVodPlayerApi. */ /** The codec used by TXFlutterVodPlayerApi. */
static MessageCodec<Object> getCodec() { static @NonNull MessageCodec<Object> getCodec() {
return TXFlutterVodPlayerApiCodec.INSTANCE; return TXFlutterVodPlayerApiCodec.INSTANCE;
} }
/**Sets up an instance of `TXFlutterVodPlayerApi` to handle messages through the `binaryMessenger`. */ /**Sets up an instance of `TXFlutterVodPlayerApi` to handle messages through the `binaryMessenger`. */
static void setup(BinaryMessenger binaryMessenger, TXFlutterVodPlayerApi api) { static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable TXFlutterVodPlayerApi api) {
{ {
BasicMessageChannel<Object> channel = BasicMessageChannel<Object> channel =
new BasicMessageChannel<>( new BasicMessageChannel<>(
...@@ -4149,11 +4308,11 @@ public class FtxMessages { ...@@ -4149,11 +4308,11 @@ public class FtxMessages {
void exitPictureInPictureMode(@NonNull PlayerMsg playerMsg); void exitPictureInPictureMode(@NonNull PlayerMsg playerMsg);
/** The codec used by TXFlutterLivePlayerApi. */ /** The codec used by TXFlutterLivePlayerApi. */
static MessageCodec<Object> getCodec() { static @NonNull MessageCodec<Object> getCodec() {
return TXFlutterLivePlayerApiCodec.INSTANCE; return TXFlutterLivePlayerApiCodec.INSTANCE;
} }
/**Sets up an instance of `TXFlutterLivePlayerApi` to handle messages through the `binaryMessenger`. */ /**Sets up an instance of `TXFlutterLivePlayerApi` to handle messages through the `binaryMessenger`. */
static void setup(BinaryMessenger binaryMessenger, TXFlutterLivePlayerApi api) { static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable TXFlutterLivePlayerApi api) {
{ {
BasicMessageChannel<Object> channel = BasicMessageChannel<Object> channel =
new BasicMessageChannel<>( new BasicMessageChannel<>(
...@@ -4613,11 +4772,11 @@ public class FtxMessages { ...@@ -4613,11 +4772,11 @@ public class FtxMessages {
BoolMsg deleteDownloadMediaInfo(@NonNull TXVodDownloadMediaMsg msg); BoolMsg deleteDownloadMediaInfo(@NonNull TXVodDownloadMediaMsg msg);
/** The codec used by TXFlutterDownloadApi. */ /** The codec used by TXFlutterDownloadApi. */
static MessageCodec<Object> getCodec() { static @NonNull MessageCodec<Object> getCodec() {
return TXFlutterDownloadApiCodec.INSTANCE; return TXFlutterDownloadApiCodec.INSTANCE;
} }
/**Sets up an instance of `TXFlutterDownloadApi` to handle messages through the `binaryMessenger`. */ /**Sets up an instance of `TXFlutterDownloadApi` to handle messages through the `binaryMessenger`. */
static void setup(BinaryMessenger binaryMessenger, TXFlutterDownloadApi api) { static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable TXFlutterDownloadApi api) {
{ {
BasicMessageChannel<Object> channel = BasicMessageChannel<Object> channel =
new BasicMessageChannel<>( new BasicMessageChannel<>(
......
...@@ -61,27 +61,23 @@ public class CommonUtil { ...@@ -61,27 +61,23 @@ public class CommonUtil {
if (CACHE_MAP.containsKey(KEY_MAX_BRIGHTNESS)) { if (CACHE_MAP.containsKey(KEY_MAX_BRIGHTNESS)) {
//noinspection ConstantConditions //noinspection ConstantConditions
return (float) CACHE_MAP.get(KEY_MAX_BRIGHTNESS); return (float) CACHE_MAP.get(KEY_MAX_BRIGHTNESS);
} else if (CommonUtil.isMIUI()) { }
float maxBrightness = 255f; float maxBrightness = 255f;
if (Build.VERSION.SDK_INT < 33) { try {
try { Resources system = Resources.getSystem();
Resources system = Resources.getSystem(); int resId = system.getIdentifier("config_screenBrightnessSettingMaximum",
int resId = system.getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android");
"integer", "android"); if (resId != 0) {
if (resId != 0) { maxBrightness = system.getInteger(resId);
maxBrightness = system.getInteger(resId);
}
} catch (Exception e) {
Log.getStackTraceString(e);
}
} else {
maxBrightness = 128F;
} }
CACHE_MAP.put(KEY_MAX_BRIGHTNESS, maxBrightness); } catch (Exception e) {
return maxBrightness; Log.getStackTraceString(e);
}
if (CommonUtil.isMIUI() && Build.VERSION.SDK_INT >= 33) {
maxBrightness = 128F;
} }
CACHE_MAP.put(KEY_MAX_BRIGHTNESS, 255f); CACHE_MAP.put(KEY_MAX_BRIGHTNESS, maxBrightness);
return 255f; return maxBrightness;
} }
public static boolean isMIUI() { public static boolean isMIUI() {
......
...@@ -443,6 +443,30 @@ static Future<bool> startVideoOrientationService() async ...@@ -443,6 +443,30 @@ static Future<bool> startVideoOrientationService() async
| result | bool | true 开启成功,false 开启失败,如开启过早,还未等到上下文初始化、获取sensor失败等原因 | | result | bool | true 开启成功,false 开启失败,如开启过早,还未等到上下文初始化、获取sensor失败等原因 |
### registerSysBrightness
**说明**
开启或关闭对于系统亮度的监听,如果开启,当系统亮度发生变化,会改变当前window亮度,并回调亮度到flutter层。该接口需配合
setBrightness和onExtraEventBroadcast使用。
**接口**
```dart
static Future<void>registerSysBrightness(bool isRegister) async
```
**参数说明**
| 参数名 | 类型 | 描述 |
| ------ | ------ |-------------------------|
| isRegister | bool | true 开启建提高,false 关闭监听 |
**返回值说明**
## TXVodPlayerController类 ## TXVodPlayerController类
...@@ -1739,20 +1763,20 @@ Future<void> startDownload(TXVodDownloadMediaInfo mediaInfo) async ...@@ -1739,20 +1763,20 @@ Future<void> startDownload(TXVodDownloadMediaInfo mediaInfo) async
**TXVodDownloadMediaInfo** **TXVodDownloadMediaInfo**
| 参数名 | 类型 | 描述 | | 参数名 | 类型 | 描述 |
| ------ | ------ | ------------------ | | ------ | ------ |-----------------------------------------------|
| playPath | String? | 缓存地址,获得到的视频缓存会有该值,启动下载可以不赋值| | playPath | String? | 缓存地址,获得到的视频缓存会有该值,启动下载可以不赋值 |
| progress | double? | 缓存进度,获得到的视频缓存会有该值,启动下载可以不赋值| | progress | double? | 缓存进度,获得到的视频缓存会有该值,启动下载可以不赋值 |
| downloadState | int? | 缓存状态,获得到的视频缓存会有该值,启动下载可以不赋值| | downloadState | int? | 缓存状态,获得到的视频缓存会有该值,启动下载可以不赋值 |
| userName | String? | 下载账户名称,用于区分不同账户的下载,传空则为 default| | userName | String? | 下载账户名称,用于区分不同账户的下载,传空则为 default,不建议设置比较长的字符串 |
| duration | int? | 缓存视频总时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值| | duration | int? | 缓存视频总时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值 |
| playableDuration | int? | 视频已缓存时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值| | playableDuration | int? | 视频已缓存时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值 |
| size | int? | 文件总大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值| | size | int? | 文件总大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值 |
| downloadSize | int? | 文件已下载的大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值| | downloadSize | int? | 文件已下载的大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值 |
| url | String? | 需要下载的视频url,url下载必填,不支持嵌套m3u8和mp4下载| | url | String? | 需要下载的视频url,url下载必填,不支持嵌套m3u8和mp4下载 |
| dataSource | TXVodDownloadDataSource? | 需要下载的视频fileId信息,url与该参数可只使用一个| | dataSource | TXVodDownloadDataSource? | 需要下载的视频fileId信息,url与该参数可只使用一个 |
| speed | int? | 下载速度,单位:KByte/秒 | | speed | int? | 下载速度,单位:KByte/秒 |
| isResourceBroken | bool? | 资源是否已损坏, 如:资源被删除了 | | isResourceBroken | bool? | 资源是否已损坏, 如:资源被删除了 |
**TXVodDownloadDataSource** **TXVodDownloadDataSource**
......
...@@ -46,6 +46,8 @@ class _DemoSuperPlayerState extends State<DemoSuperPlayer> with TXPipPlayerResto ...@@ -46,6 +46,8 @@ class _DemoSuperPlayerState extends State<DemoSuperPlayer> with TXPipPlayerResto
super.initState(); super.initState();
// Listen for device rotation. // Listen for device rotation.
SuperPlayerPlugin.startVideoOrientationService(); SuperPlayerPlugin.startVideoOrientationService();
// open brightness observer
SuperPlayerPlugin.registerSysBrightness(true);
_controller = SuperPlayerController(context); _controller = SuperPlayerController(context);
TXPipController.instance.setPipPlayerPage(this); TXPipController.instance.setPipPlayerPage(this);
FTXVodPlayConfig config = FTXVodPlayConfig(); FTXVodPlayConfig config = FTXVodPlayConfig();
...@@ -417,6 +419,10 @@ class _DemoSuperPlayerState extends State<DemoSuperPlayer> with TXPipPlayerResto ...@@ -417,6 +419,10 @@ class _DemoSuperPlayerState extends State<DemoSuperPlayer> with TXPipPlayerResto
// must invoke when page exit. // must invoke when page exit.
_controller.releasePlayer(); _controller.releasePlayer();
simpleEventSubscription?.cancel(); simpleEventSubscription?.cancel();
// restore current brightness to sys brightness
SuperPlayerPlugin.restorePageBrightness();
// unregister brightness observer
SuperPlayerPlugin.registerSysBrightness(false);
super.dispose(); super.dispose();
} }
......
...@@ -359,6 +359,10 @@ SuperPlayerPlugin* instance; ...@@ -359,6 +359,10 @@ SuperPlayerPlugin* instance;
[audioManager setVolume:volumeNum.floatValue]; [audioManager setVolume:volumeNum.floatValue];
} }
- (void)registerSysBrightnessIsRegister:(BoolMsg *)isRegister error:(FlutterError * _Nullable __autoreleasing *)error {
// only for android
}
#pragma mark DataBridge #pragma mark DataBridge
- (NSMutableDictionary *)getPlayers { - (NSMutableDictionary *)getPlayers {
......
// // Copyright (c) 2022 Tencent. All rights reserved. // // Copyright (c) 2022 Tencent. All rights reserved.
// Autogenerated from Pigeon (v9.1.2), do not edit directly. // Autogenerated from Pigeon (v9.2.5), 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>
...@@ -34,6 +34,10 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -34,6 +34,10 @@ NS_ASSUME_NONNULL_BEGIN
@class PreLoadMsg; @class PreLoadMsg;
@class MapMsg; @class MapMsg;
/// Pigeon original component, used to generate native communication code for `messages`.
/// The generation command is as follows. When using the generation command,
/// the two import statements above need to be implemented or commented out.
///
/// pigeon原始原件,由此文件生成messages原生通信代码 /// pigeon原始原件,由此文件生成messages原生通信代码
/// 生成命令如下,使用生成命令的时候,需要实现注释掉以上两个import导入 /// 生成命令如下,使用生成命令的时候,需要实现注释掉以上两个import导入
@interface PlayerMsg : NSObject @interface PlayerMsg : NSObject
...@@ -394,6 +398,10 @@ NSObject<FlutterMessageCodec> *TXFlutterNativeAPIGetCodec(void); ...@@ -394,6 +398,10 @@ NSObject<FlutterMessageCodec> *TXFlutterNativeAPIGetCodec(void);
/// ///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable IntMsg *)isDeviceSupportPipWithError:(FlutterError *_Nullable *_Nonnull)error; - (nullable IntMsg *)isDeviceSupportPipWithError:(FlutterError *_Nullable *_Nonnull)error;
///
/// register or unregister system brightness
///
- (void)registerSysBrightnessIsRegister:(BoolMsg *)isRegister error:(FlutterError *_Nullable *_Nonnull)error;
@end @end
extern void TXFlutterNativeAPISetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<TXFlutterNativeAPI> *_Nullable api); extern void TXFlutterNativeAPISetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<TXFlutterNativeAPI> *_Nullable api);
...@@ -403,7 +411,9 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void); ...@@ -403,7 +411,9 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void);
@protocol TXFlutterVodPlayerApi @protocol TXFlutterVodPlayerApi
/// 播放器初始化,创建共享纹理、初始化播放器 /// 播放器初始化,创建共享纹理、初始化播放器
/// @param onlyAudio 是否是纯音频模式 ///
/// To initialize the player, you would need to create a shared texture and initialize the player.
/// @param onlyAudio 是否是纯音频模式 if pure audio mode
/// ///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable IntMsg *)initializeOnlyAudio:(BoolPlayerMsg *)onlyAudio error:(FlutterError *_Nullable *_Nonnull)error; - (nullable IntMsg *)initializeOnlyAudio:(BoolPlayerMsg *)onlyAudio error:(FlutterError *_Nullable *_Nonnull)error;
...@@ -412,8 +422,16 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void); ...@@ -412,8 +422,16 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void);
/// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , /// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
/// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] /// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 /// (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)。
/// @param url : 视频播放地址 ///
/// return 是否播放成功 /// Starting from version 10.7, the method `startPlay` has been changed to `startVodPlay` for playing videos via a URL.
/// To play videos successfully, it is necessary to set the license by using the method `SuperPlayerPlugin#setGlobalLicense`.
/// Failure to set the license will result in video playback failure (a black screen).
/// Live streaming, short video, and video playback licenses can all be used. If you do not have any of the above licenses,
/// you can apply for a free trial license to play videos normally[Quickly apply for a free trial version Licence]
/// (https://cloud.tencent.com/act/event/License).Official licenses can be purchased
/// (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).
/// @param url : 视频播放地址 video playback address
/// return 是否播放成功 if play successfully
/// ///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable BoolMsg *)startVodPlayUrl:(StringPlayerMsg *)url error:(FlutterError *_Nullable *_Nonnull)error; - (nullable BoolMsg *)startVodPlayUrl:(StringPlayerMsg *)url error:(FlutterError *_Nullable *_Nonnull)error;
...@@ -422,85 +440,147 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void); ...@@ -422,85 +440,147 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void);
/// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , /// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
/// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] /// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 /// (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)。
/// @params : 见[TXPlayInfoParams] ///
/// return 是否播放成功 /// Starting from version 10.7, the method "startPlayWithParams" has been changed to "startVodPlayWithParams" for playing videos using fileId.
/// To play the video successfully, you need to set the Licence using "SuperPlayerPlugin#setGlobalLicense" method before playing the video.
/// If you do not set the Licence, the video will not play (black screen). The Licence for live streaming,
/// short video, and video playback can all be used. If you have not obtained the Licence, you can apply for a free trial version [here]
/// (https://cloud.tencent.com/act/event/License) for normal playback. To use the official version, you need to [purchase]
/// (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).
/// @params : see[TXPlayInfoParams]
/// return 是否播放成功 if play successful
- (void)startVodPlayWithParamsParams:(TXPlayInfoParamsPlayerMsg *)params error:(FlutterError *_Nullable *_Nonnull)error; - (void)startVodPlayWithParamsParams:(TXPlayInfoParamsPlayerMsg *)params error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置是否自动播放 /// 设置是否自动播放
///
/// set autoplay
- (void)setAutoPlayIsAutoPlay:(BoolPlayerMsg *)isAutoPlay error:(FlutterError *_Nullable *_Nonnull)error; - (void)setAutoPlayIsAutoPlay:(BoolPlayerMsg *)isAutoPlay error:(FlutterError *_Nullable *_Nonnull)error;
/// 停止播放 /// 停止播放
/// return 是否停止成功 ///
/// Stop playback
/// return 是否停止成功 if stop successful
/// ///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable BoolMsg *)stopIsNeedClear:(BoolPlayerMsg *)isNeedClear error:(FlutterError *_Nullable *_Nonnull)error; - (nullable BoolMsg *)stopIsNeedClear:(BoolPlayerMsg *)isNeedClear error:(FlutterError *_Nullable *_Nonnull)error;
/// 视频是否处于正在播放中 /// 视频是否处于正在播放中
/// ///
/// Is the video currently playing
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable BoolMsg *)isPlayingPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable BoolMsg *)isPlayingPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 视频暂停,必须在播放器开始播放的时候调用 /// 视频暂停,必须在播放器开始播放的时候调用
///
/// pause video, it must be called when the player starts playing
- (void)pausePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (void)pausePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 继续播放,在暂停的时候调用 /// 继续播放,在暂停的时候调用
///
/// resume playback, it should be called when the video is paused
- (void)resumePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (void)resumePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置是否静音 /// 设置是否静音
///
/// Set whether to mute or not
- (void)setMuteMute:(BoolPlayerMsg *)mute error:(FlutterError *_Nullable *_Nonnull)error; - (void)setMuteMute:(BoolPlayerMsg *)mute error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置是否循环播放 /// 设置是否循环播放
///
/// Set whether to loop playback or not
- (void)setLoopLoop:(BoolPlayerMsg *)loop error:(FlutterError *_Nullable *_Nonnull)error; - (void)setLoopLoop:(BoolPlayerMsg *)loop error:(FlutterError *_Nullable *_Nonnull)error;
/// 将视频播放进度定位到指定的进度进行播放 /// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒 ///
/// Set the video playback progress to a specific time and start playing.
/// progress 要定位的视频时间,单位 秒 The video playback time to be located, in seconds
- (void)seekProgress:(DoublePlayerMsg *)progress error:(FlutterError *_Nullable *_Nonnull)error; - (void)seekProgress:(DoublePlayerMsg *)progress error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置播放速率,默认速率 1 /// 设置播放速率,默认速率 1
///
/// Set the playback speed, with a default speed of 1.
- (void)setRateRate:(DoublePlayerMsg *)rate error:(FlutterError *_Nullable *_Nonnull)error; - (void)setRateRate:(DoublePlayerMsg *)rate error:(FlutterError *_Nullable *_Nonnull)error;
/// 获得播放视频解析出来的码率信息 /// 获得播放视频解析出来的码率信息
///
/// get the bitrate information extracted from playing a video
/// return List<Map> /// return List<Map>
/// Bitrate键值:index 码率序号,width 码率对应视频宽度, /// Bitrate:index 码率序号,
/// height 码率对应视频高度, bitrate 码率值 /// width 码率对应视频宽度,
/// height 码率对应视频高度,
/// bitrate 码率值
///
/// Bitrate:index:bitrate index,
/// width:the video with of this bitrate,
/// height:the video height of this bitrate,
/// bitrate:bitrate value
/// ///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable ListMsg *)getSupportedBitratePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable ListMsg *)getSupportedBitratePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 获得当前设置的码率序号 /// 获得当前设置的码率序号
/// ///
/// Get the index of the current bitrate setting
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable IntMsg *)getBitrateIndexPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable IntMsg *)getBitrateIndexPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置码率序号 /// 设置码率序号
///
/// Set the index of the bitrate setting.
- (void)setBitrateIndexIndex:(IntPlayerMsg *)index error:(FlutterError *_Nullable *_Nonnull)error; - (void)setBitrateIndexIndex:(IntPlayerMsg *)index error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置视频播放开始时间,单位 秒 /// 设置视频播放开始时间,单位 秒
///
/// Set the start time of the video playback, in seconds.
- (void)setStartTimeStartTime:(DoublePlayerMsg *)startTime error:(FlutterError *_Nullable *_Nonnull)error; - (void)setStartTimeStartTime:(DoublePlayerMsg *)startTime error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置视频声音 0~100 /// 设置视频声音 0~100
///
/// Set the volume of the video, ranging from 0 to 100.
- (void)setAudioPlayOutVolumeVolume:(IntPlayerMsg *)volume error:(FlutterError *_Nullable *_Nonnull)error; - (void)setAudioPlayOutVolumeVolume:(IntPlayerMsg *)volume error:(FlutterError *_Nullable *_Nonnull)error;
/// 请求获得音频焦点 /// 请求获得音频焦点
/// ///
/// Request audio focus.
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable BoolMsg *)setRequestAudioFocusFocus:(BoolPlayerMsg *)focus error:(FlutterError *_Nullable *_Nonnull)error; - (nullable BoolMsg *)setRequestAudioFocusFocus:(BoolPlayerMsg *)focus error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXVodPlayConfigPlayerMsg] ///
/// Set player configuration
/// config @see [FTXVodPlayConfig]
- (void)setConfigConfig:(FTXVodPlayConfigPlayerMsg *)config error:(FlutterError *_Nullable *_Nonnull)error; - (void)setConfigConfig:(FTXVodPlayConfigPlayerMsg *)config error:(FlutterError *_Nullable *_Nonnull)error;
/// 获得当前已经播放的时间,单位 秒 /// 获得当前已经播放的时间,单位 秒
/// ///
/// Get the current playback time, in seconds.
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable DoubleMsg *)getCurrentPlaybackTimePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable DoubleMsg *)getCurrentPlaybackTimePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 获得当前视频已缓存的时间 /// 获得当前视频已缓存的时间
/// ///
/// Get the current amount of video that has been buffered.
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable DoubleMsg *)getBufferDurationPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable DoubleMsg *)getBufferDurationPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 获得当前视频的可播放时间 /// 获得当前视频的可播放时间
/// ///
/// Get the current playable duration of the video.
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable DoubleMsg *)getPlayableDurationPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable DoubleMsg *)getPlayableDurationPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 获得当前播放视频的宽度 /// 获得当前播放视频的宽度
/// ///
/// Get the width of the currently playing video.
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable IntMsg *)getWidthPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable IntMsg *)getWidthPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 获得当前播放视频的高度 /// 获得当前播放视频的高度
/// ///
/// Get the height of the currently playing video.
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable IntMsg *)getHeightPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable IntMsg *)getHeightPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 设置播放视频的token /// 设置播放视频的token
///
/// Set the token for playing the video.
- (void)setTokenToken:(StringPlayerMsg *)token error:(FlutterError *_Nullable *_Nonnull)error; - (void)setTokenToken:(StringPlayerMsg *)token error:(FlutterError *_Nullable *_Nonnull)error;
/// 当前播放的视频是否循环播放 /// 当前播放的视频是否循环播放
/// ///
/// Is the currently playing video set to loop
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable BoolMsg *)isLoopPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable BoolMsg *)isLoopPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 开启/关闭硬件编码 /// 开启/关闭硬件编码
/// ///
/// Enable/Disable hardware encoding.
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable BoolMsg *)enableHardwareDecodeEnable:(BoolPlayerMsg *)enable error:(FlutterError *_Nullable *_Nonnull)error; - (nullable BoolMsg *)enableHardwareDecodeEnable:(BoolPlayerMsg *)enable error:(FlutterError *_Nullable *_Nonnull)error;
/// 进入画中画模式,进入画中画模式,需要适配画中画模式的界面,安卓只支持7.0以上机型 /// 进入画中画模式,进入画中画模式,需要适配画中画模式的界面,安卓只支持7.0以上机型
...@@ -513,12 +593,16 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void); ...@@ -513,12 +593,16 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void);
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable IntMsg *)enterPictureInPictureModePipParamsMsg:(PipParamsPlayerMsg *)pipParamsMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable IntMsg *)enterPictureInPictureModePipParamsMsg:(PipParamsPlayerMsg *)pipParamsMsg error:(FlutterError *_Nullable *_Nonnull)error;
/// 退出画中画,如果该播放器处于画中画模式 /// 退出画中画,如果该播放器处于画中画模式
///
/// Exit picture-in-picture mode if the video player is in picture-in-picture mode.
- (void)exitPictureInPictureModePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (void)exitPictureInPictureModePlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
- (void)initImageSpriteSpriteInfo:(StringListPlayerMsg *)spriteInfo error:(FlutterError *_Nullable *_Nonnull)error; - (void)initImageSpriteSpriteInfo:(StringListPlayerMsg *)spriteInfo error:(FlutterError *_Nullable *_Nonnull)error;
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable UInt8ListMsg *)getImageSpriteTime:(DoublePlayerMsg *)time error:(FlutterError *_Nullable *_Nonnull)error; - (nullable UInt8ListMsg *)getImageSpriteTime:(DoublePlayerMsg *)time error:(FlutterError *_Nullable *_Nonnull)error;
/// 获取总时长 /// 获取总时长
/// ///
/// To get the total duration
///
/// @return `nil` only when `error != nil`. /// @return `nil` only when `error != nil`.
- (nullable DoubleMsg *)getDurationPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error; - (nullable DoubleMsg *)getDurationPlayerMsg:(PlayerMsg *)playerMsg error:(FlutterError *_Nullable *_Nonnull)error;
@end @end
......
// // Copyright (c) 2022 Tencent. All rights reserved. // // Copyright (c) 2022 Tencent. All rights reserved.
// Autogenerated from Pigeon (v9.1.2), do not edit directly. // Autogenerated from Pigeon (v9.2.5), do not edit directly.
// See also: https://pub.dev/packages/pigeon // See also: https://pub.dev/packages/pigeon
#import "FtxMessages.h" #import "FtxMessages.h"
...@@ -925,7 +925,7 @@ static id GetNullableObjectAtIndex(NSArray *array, NSInteger key) { ...@@ -925,7 +925,7 @@ static id GetNullableObjectAtIndex(NSArray *array, NSInteger key) {
} }
@end @end
NSObject<FlutterMessageCodec> *TXFlutterSuperPlayerPluginAPIGetCodec() { NSObject<FlutterMessageCodec> *TXFlutterSuperPlayerPluginAPIGetCodec(void) {
static FlutterStandardMessageCodec *sSharedObject = nil; static FlutterStandardMessageCodec *sSharedObject = nil;
static dispatch_once_t sPred = 0; static dispatch_once_t sPred = 0;
dispatch_once(&sPred, ^{ dispatch_once(&sPred, ^{
...@@ -1196,8 +1196,10 @@ void TXFlutterSuperPlayerPluginAPISetup(id<FlutterBinaryMessenger> binaryMesseng ...@@ -1196,8 +1196,10 @@ void TXFlutterSuperPlayerPluginAPISetup(id<FlutterBinaryMessenger> binaryMesseng
- (nullable id)readValueOfType:(UInt8)type { - (nullable id)readValueOfType:(UInt8)type {
switch (type) { switch (type) {
case 128: case 128:
return [DoubleMsg fromList:[self readValue]]; return [BoolMsg fromList:[self readValue]];
case 129: case 129:
return [DoubleMsg fromList:[self readValue]];
case 130:
return [IntMsg fromList:[self readValue]]; return [IntMsg fromList:[self readValue]];
default: default:
return [super readValueOfType:type]; return [super readValueOfType:type];
...@@ -1209,12 +1211,15 @@ void TXFlutterSuperPlayerPluginAPISetup(id<FlutterBinaryMessenger> binaryMesseng ...@@ -1209,12 +1211,15 @@ void TXFlutterSuperPlayerPluginAPISetup(id<FlutterBinaryMessenger> binaryMesseng
@end @end
@implementation TXFlutterNativeAPICodecWriter @implementation TXFlutterNativeAPICodecWriter
- (void)writeValue:(id)value { - (void)writeValue:(id)value {
if ([value isKindOfClass:[DoubleMsg class]]) { if ([value isKindOfClass:[BoolMsg class]]) {
[self writeByte:128]; [self writeByte:128];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[IntMsg class]]) { } else if ([value isKindOfClass:[DoubleMsg class]]) {
[self writeByte:129]; [self writeByte:129];
[self writeValue:[value toList]]; [self writeValue:[value toList]];
} else if ([value isKindOfClass:[IntMsg class]]) {
[self writeByte:130];
[self writeValue:[value toList]];
} else { } else {
[super writeValue:value]; [super writeValue:value];
} }
...@@ -1232,7 +1237,7 @@ void TXFlutterSuperPlayerPluginAPISetup(id<FlutterBinaryMessenger> binaryMesseng ...@@ -1232,7 +1237,7 @@ void TXFlutterSuperPlayerPluginAPISetup(id<FlutterBinaryMessenger> binaryMesseng
} }
@end @end
NSObject<FlutterMessageCodec> *TXFlutterNativeAPIGetCodec() { NSObject<FlutterMessageCodec> *TXFlutterNativeAPIGetCodec(void) {
static FlutterStandardMessageCodec *sSharedObject = nil; static FlutterStandardMessageCodec *sSharedObject = nil;
static dispatch_once_t sPred = 0; static dispatch_once_t sPred = 0;
dispatch_once(&sPred, ^{ dispatch_once(&sPred, ^{
...@@ -1414,6 +1419,28 @@ void TXFlutterNativeAPISetup(id<FlutterBinaryMessenger> binaryMessenger, NSObjec ...@@ -1414,6 +1419,28 @@ void TXFlutterNativeAPISetup(id<FlutterBinaryMessenger> binaryMessenger, NSObjec
[channel setMessageHandler:nil]; [channel setMessageHandler:nil];
} }
} }
///
/// register or unregister system brightness
///
{
FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc]
initWithName:@"dev.flutter.pigeon.TXFlutterNativeAPI.registerSysBrightness"
binaryMessenger:binaryMessenger
codec:TXFlutterNativeAPIGetCodec()];
if (api) {
NSCAssert([api respondsToSelector:@selector(registerSysBrightnessIsRegister:error:)], @"TXFlutterNativeAPI api (%@) doesn't respond to @selector(registerSysBrightnessIsRegister:error:)", api);
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
NSArray *args = message;
BoolMsg *arg_isRegister = GetNullableObjectAtIndex(args, 0);
FlutterError *error;
[api registerSysBrightnessIsRegister:arg_isRegister error:&error];
callback(wrapResult(nil, error));
}];
} else {
[channel setMessageHandler:nil];
}
}
} }
@interface TXFlutterVodPlayerApiCodecReader : FlutterStandardReader @interface TXFlutterVodPlayerApiCodecReader : FlutterStandardReader
@end @end
...@@ -1517,7 +1544,7 @@ void TXFlutterNativeAPISetup(id<FlutterBinaryMessenger> binaryMessenger, NSObjec ...@@ -1517,7 +1544,7 @@ void TXFlutterNativeAPISetup(id<FlutterBinaryMessenger> binaryMessenger, NSObjec
} }
@end @end
NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec() { NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec(void) {
static FlutterStandardMessageCodec *sSharedObject = nil; static FlutterStandardMessageCodec *sSharedObject = nil;
static dispatch_once_t sPred = 0; static dispatch_once_t sPred = 0;
dispatch_once(&sPred, ^{ dispatch_once(&sPred, ^{
...@@ -1529,7 +1556,9 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec() { ...@@ -1529,7 +1556,9 @@ NSObject<FlutterMessageCodec> *TXFlutterVodPlayerApiGetCodec() {
void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<TXFlutterVodPlayerApi> *api) { void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<TXFlutterVodPlayerApi> *api) {
/// 播放器初始化,创建共享纹理、初始化播放器 /// 播放器初始化,创建共享纹理、初始化播放器
/// @param onlyAudio 是否是纯音频模式 ///
/// To initialize the player, you would need to create a shared texture and initialize the player.
/// @param onlyAudio 是否是纯音频模式 if pure audio mode
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1554,8 +1583,16 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1554,8 +1583,16 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
/// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , /// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
/// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] /// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 /// (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)。
/// @param url : 视频播放地址 ///
/// return 是否播放成功 /// Starting from version 10.7, the method `startPlay` has been changed to `startVodPlay` for playing videos via a URL.
/// To play videos successfully, it is necessary to set the license by using the method `SuperPlayerPlugin#setGlobalLicense`.
/// Failure to set the license will result in video playback failure (a black screen).
/// Live streaming, short video, and video playback licenses can all be used. If you do not have any of the above licenses,
/// you can apply for a free trial license to play videos normally[Quickly apply for a free trial version Licence]
/// (https://cloud.tencent.com/act/event/License).Official licenses can be purchased
/// (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).
/// @param url : 视频播放地址 video playback address
/// return 是否播放成功 if play successfully
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1580,8 +1617,15 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1580,8 +1617,15 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
/// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , /// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
/// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] /// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 /// (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)。
/// @params : 见[TXPlayInfoParams] ///
/// return 是否播放成功 /// Starting from version 10.7, the method "startPlayWithParams" has been changed to "startVodPlayWithParams" for playing videos using fileId.
/// To play the video successfully, you need to set the Licence using "SuperPlayerPlugin#setGlobalLicense" method before playing the video.
/// If you do not set the Licence, the video will not play (black screen). The Licence for live streaming,
/// short video, and video playback can all be used. If you have not obtained the Licence, you can apply for a free trial version [here]
/// (https://cloud.tencent.com/act/event/License) for normal playback. To use the official version, you need to [purchase]
/// (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).
/// @params : see[TXPlayInfoParams]
/// return 是否播放成功 if play successful
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1602,6 +1646,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1602,6 +1646,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置是否自动播放 /// 设置是否自动播放
///
/// set autoplay
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1622,7 +1668,9 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1622,7 +1668,9 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 停止播放 /// 停止播放
/// return 是否停止成功 ///
/// Stop playback
/// return 是否停止成功 if stop successful
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1643,6 +1691,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1643,6 +1691,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 视频是否处于正在播放中 /// 视频是否处于正在播放中
///
/// Is the video currently playing
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1663,6 +1713,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1663,6 +1713,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 视频暂停,必须在播放器开始播放的时候调用 /// 视频暂停,必须在播放器开始播放的时候调用
///
/// pause video, it must be called when the player starts playing
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1683,6 +1735,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1683,6 +1735,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 继续播放,在暂停的时候调用 /// 继续播放,在暂停的时候调用
///
/// resume playback, it should be called when the video is paused
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1703,6 +1757,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1703,6 +1757,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置是否静音 /// 设置是否静音
///
/// Set whether to mute or not
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1723,6 +1779,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1723,6 +1779,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置是否循环播放 /// 设置是否循环播放
///
/// Set whether to loop playback or not
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1743,7 +1801,9 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1743,7 +1801,9 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 将视频播放进度定位到指定的进度进行播放 /// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒 ///
/// Set the video playback progress to a specific time and start playing.
/// progress 要定位的视频时间,单位 秒 The video playback time to be located, in seconds
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1764,6 +1824,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1764,6 +1824,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置播放速率,默认速率 1 /// 设置播放速率,默认速率 1
///
/// Set the playback speed, with a default speed of 1.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1784,9 +1846,18 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1784,9 +1846,18 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获得播放视频解析出来的码率信息 /// 获得播放视频解析出来的码率信息
///
/// get the bitrate information extracted from playing a video
/// return List<Map> /// return List<Map>
/// Bitrate键值:index 码率序号,width 码率对应视频宽度, /// Bitrate:index 码率序号,
/// height 码率对应视频高度, bitrate 码率值 /// width 码率对应视频宽度,
/// height 码率对应视频高度,
/// bitrate 码率值
///
/// Bitrate:index:bitrate index,
/// width:the video with of this bitrate,
/// height:the video height of this bitrate,
/// bitrate:bitrate value
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1807,6 +1878,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1807,6 +1878,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获得当前设置的码率序号 /// 获得当前设置的码率序号
///
/// Get the index of the current bitrate setting
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1827,6 +1900,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1827,6 +1900,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置码率序号 /// 设置码率序号
///
/// Set the index of the bitrate setting.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1847,6 +1922,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1847,6 +1922,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置视频播放开始时间,单位 秒 /// 设置视频播放开始时间,单位 秒
///
/// Set the start time of the video playback, in seconds.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1867,6 +1944,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1867,6 +1944,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置视频声音 0~100 /// 设置视频声音 0~100
///
/// Set the volume of the video, ranging from 0 to 100.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1887,6 +1966,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1887,6 +1966,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 请求获得音频焦点 /// 请求获得音频焦点
///
/// Request audio focus.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1907,7 +1988,9 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1907,7 +1988,9 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXVodPlayConfigPlayerMsg] ///
/// Set player configuration
/// config @see [FTXVodPlayConfig]
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1928,6 +2011,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1928,6 +2011,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获得当前已经播放的时间,单位 秒 /// 获得当前已经播放的时间,单位 秒
///
/// Get the current playback time, in seconds.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1948,6 +2033,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1948,6 +2033,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获得当前视频已缓存的时间 /// 获得当前视频已缓存的时间
///
/// Get the current amount of video that has been buffered.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1968,6 +2055,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1968,6 +2055,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获得当前视频的可播放时间 /// 获得当前视频的可播放时间
///
/// Get the current playable duration of the video.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -1988,6 +2077,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -1988,6 +2077,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获得当前播放视频的宽度 /// 获得当前播放视频的宽度
///
/// Get the width of the currently playing video.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -2008,6 +2099,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2008,6 +2099,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获得当前播放视频的高度 /// 获得当前播放视频的高度
///
/// Get the height of the currently playing video.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -2028,6 +2121,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2028,6 +2121,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 设置播放视频的token /// 设置播放视频的token
///
/// Set the token for playing the video.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -2048,6 +2143,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2048,6 +2143,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 当前播放的视频是否循环播放 /// 当前播放的视频是否循环播放
///
/// Is the currently playing video set to loop
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -2068,6 +2165,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2068,6 +2165,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 开启/关闭硬件编码 /// 开启/关闭硬件编码
///
/// Enable/Disable hardware encoding.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -2113,6 +2212,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2113,6 +2212,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 退出画中画,如果该播放器处于画中画模式 /// 退出画中画,如果该播放器处于画中画模式
///
/// Exit picture-in-picture mode if the video player is in picture-in-picture mode.
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -2171,6 +2272,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2171,6 +2272,8 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
} }
/// 获取总时长 /// 获取总时长
///
/// To get the total duration
{ {
FlutterBasicMessageChannel *channel = FlutterBasicMessageChannel *channel =
[[FlutterBasicMessageChannel alloc] [[FlutterBasicMessageChannel alloc]
...@@ -2268,7 +2371,7 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb ...@@ -2268,7 +2371,7 @@ void TXFlutterVodPlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSOb
} }
@end @end
NSObject<FlutterMessageCodec> *TXFlutterLivePlayerApiGetCodec() { NSObject<FlutterMessageCodec> *TXFlutterLivePlayerApiGetCodec(void) {
static FlutterStandardMessageCodec *sSharedObject = nil; static FlutterStandardMessageCodec *sSharedObject = nil;
static dispatch_once_t sPred = 0; static dispatch_once_t sPred = 0;
dispatch_once(&sPred, ^{ dispatch_once(&sPred, ^{
...@@ -2656,7 +2759,7 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO ...@@ -2656,7 +2759,7 @@ void TXFlutterLivePlayerApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSO
} }
@end @end
NSObject<FlutterMessageCodec> *TXFlutterDownloadApiGetCodec() { NSObject<FlutterMessageCodec> *TXFlutterDownloadApiGetCodec(void) {
static FlutterStandardMessageCodec *sSharedObject = nil; static FlutterStandardMessageCodec *sSharedObject = nil;
static dispatch_once_t sPred = 0; static dispatch_once_t sPred = 0;
dispatch_once(&sPred, ^{ dispatch_once(&sPred, ^{
......
...@@ -365,6 +365,11 @@ abstract class TXFlutterNativeAPI { ...@@ -365,6 +365,11 @@ abstract class TXFlutterNativeAPI {
/// -102 画中画权限关闭/设备不支持画中画 /// -102 画中画权限关闭/设备不支持画中画
/// -103 当前界面已销毁 /// -103 当前界面已销毁
IntMsg isDeviceSupportPip(); IntMsg isDeviceSupportPip();
///
/// register or unregister system brightness
///
void registerSysBrightness(BoolMsg isRegister);
} }
@HostApi() @HostApi()
......
...@@ -260,4 +260,15 @@ class SuperPlayerPlugin { ...@@ -260,4 +260,15 @@ class SuperPlayerPlugin {
BoolMsg boolMsg = await _playerPluginApi.startVideoOrientationService(); BoolMsg boolMsg = await _playerPluginApi.startVideoOrientationService();
return boolMsg.value; return boolMsg.value;
} }
///
/// register or unregister system brightness.if register the system brightness observer,
/// current window brightness wil changed by system brightness's change.
/// <h2>only for android</h2>
/// @param isRegister:true register system brightness
/// :false unregister system brightness
///
static Future<void>registerSysBrightness(bool isRegister) async {
await _nativeAPI.registerSysBrightness(BoolMsg()..value = isRegister);
}
} }
...@@ -547,7 +547,9 @@ class TXVodDownloadDataSource { ...@@ -547,7 +547,9 @@ class TXVodDownloadDataSource {
String? token; String? token;
/// Account name, used to set the account name for URL download. /// Account name, used to set the account name for URL download.
/// 账户名称,用于url下载设置账户名称 /// It is not recommended to set a string that is too long,
/// Otherwise, it may lead to unforeseen problems.
/// 账户名称,用于url下载设置账户名称。不建议设置比较长的字符串,否则可能会导致不可预料的问题。
String? userName; String? userName;
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
...@@ -578,7 +580,9 @@ class TXVodDownloadMediaInfo { ...@@ -578,7 +580,9 @@ class TXVodDownloadMediaInfo {
int? downloadState; int? downloadState;
/// Account name, used to set the account name for URL download. /// Account name, used to set the account name for URL download.
/// 账户名称,用于url下载设置账户名称 /// It is not recommended to set a string that is too long,
/// Otherwise, it may lead to unforeseen problems.
/// 账户名称,用于url下载设置账户名称。不建议设置比较长的字符串,否则可能会导致不可预料的问题。
String? userName; String? userName;
/// Total duration. /// Total duration.
......
// 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. // Autogenerated from Pigeon (v9.2.5), do not edit directly.
// See also: https://pub.dev/packages/pigeon // 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 // 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 original component, used to generate native communication code for `messages`. /// Pigeon original component, used to generate native communication code for `messages`.
/// The generation command is as follows. When using the generation command, /// The generation command is as follows. When using the generation command,
/// the two import statements above need to be implemented or commented out. /// the two import statements above need to be implemented or commented out.
...@@ -1197,12 +1198,15 @@ class _TXFlutterNativeAPICodec extends StandardMessageCodec { ...@@ -1197,12 +1198,15 @@ class _TXFlutterNativeAPICodec extends StandardMessageCodec {
const _TXFlutterNativeAPICodec(); const _TXFlutterNativeAPICodec();
@override @override
void writeValue(WriteBuffer buffer, Object? value) { void writeValue(WriteBuffer buffer, Object? value) {
if (value is DoubleMsg) { if (value is BoolMsg) {
buffer.putUint8(128); buffer.putUint8(128);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is IntMsg) { } else if (value is DoubleMsg) {
buffer.putUint8(129); buffer.putUint8(129);
writeValue(buffer, value.encode()); writeValue(buffer, value.encode());
} else if (value is IntMsg) {
buffer.putUint8(130);
writeValue(buffer, value.encode());
} else { } else {
super.writeValue(buffer, value); super.writeValue(buffer, value);
} }
...@@ -1212,8 +1216,10 @@ class _TXFlutterNativeAPICodec extends StandardMessageCodec { ...@@ -1212,8 +1216,10 @@ class _TXFlutterNativeAPICodec extends StandardMessageCodec {
Object? readValueOfType(int type, ReadBuffer buffer) { Object? readValueOfType(int type, ReadBuffer buffer) {
switch (type) { switch (type) {
case 128: case 128:
return DoubleMsg.decode(readValue(buffer)!); return BoolMsg.decode(readValue(buffer)!);
case 129: case 129:
return DoubleMsg.decode(readValue(buffer)!);
case 130:
return IntMsg.decode(readValue(buffer)!); return IntMsg.decode(readValue(buffer)!);
default: default:
return super.readValueOfType(type, buffer); return super.readValueOfType(type, buffer);
...@@ -1462,6 +1468,31 @@ class TXFlutterNativeAPI { ...@@ -1462,6 +1468,31 @@ class TXFlutterNativeAPI {
return (replyList[0] as IntMsg?)!; return (replyList[0] as IntMsg?)!;
} }
} }
///
/// register or unregister system brightness
///
Future<void> registerSysBrightness(BoolMsg arg_isRegister) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterNativeAPI.registerSysBrightness', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_isRegister]) 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;
}
}
} }
class _TXFlutterVodPlayerApiCodec extends StandardMessageCodec { class _TXFlutterVodPlayerApiCodec extends StandardMessageCodec {
...@@ -1563,7 +1594,9 @@ class TXFlutterVodPlayerApi { ...@@ -1563,7 +1594,9 @@ class TXFlutterVodPlayerApi {
static const MessageCodec<Object?> codec = _TXFlutterVodPlayerApiCodec(); static const MessageCodec<Object?> codec = _TXFlutterVodPlayerApiCodec();
/// 播放器初始化,创建共享纹理、初始化播放器 /// 播放器初始化,创建共享纹理、初始化播放器
/// @param onlyAudio 是否是纯音频模式 ///
/// To initialize the player, you would need to create a shared texture and initialize the player.
/// @param onlyAudio 是否是纯音频模式 if pure audio mode
Future<IntMsg> initialize(BoolPlayerMsg arg_onlyAudio) async { Future<IntMsg> initialize(BoolPlayerMsg arg_onlyAudio) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.initialize', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.initialize', codec,
...@@ -1596,8 +1629,16 @@ class TXFlutterVodPlayerApi { ...@@ -1596,8 +1629,16 @@ class TXFlutterVodPlayerApi {
/// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , /// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
/// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] /// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 /// (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)。
/// @param url : 视频播放地址 ///
/// return 是否播放成功 /// Starting from version 10.7, the method `startPlay` has been changed to `startVodPlay` for playing videos via a URL.
/// To play videos successfully, it is necessary to set the license by using the method `SuperPlayerPlugin#setGlobalLicense`.
/// Failure to set the license will result in video playback failure (a black screen).
/// Live streaming, short video, and video playback licenses can all be used. If you do not have any of the above licenses,
/// you can apply for a free trial license to play videos normally[Quickly apply for a free trial version Licence]
/// (https://cloud.tencent.com/act/event/License).Official licenses can be purchased
/// (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).
/// @param url : 视频播放地址 video playback address
/// return 是否播放成功 if play successfully
Future<BoolMsg> startVodPlay(StringPlayerMsg arg_url) async { Future<BoolMsg> startVodPlay(StringPlayerMsg arg_url) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.startVodPlay', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.startVodPlay', codec,
...@@ -1630,8 +1671,15 @@ class TXFlutterVodPlayerApi { ...@@ -1630,8 +1671,15 @@ class TXFlutterVodPlayerApi {
/// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence , /// 否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence ,
/// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 License 需[购买] /// 可[快速免费申请测试版 Licence](https://cloud.tencent.com/act/event/License) 以正常播放,正式版 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)。 /// (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)。
/// @params : 见[TXPlayInfoParams] ///
/// return 是否播放成功 /// Starting from version 10.7, the method "startPlayWithParams" has been changed to "startVodPlayWithParams" for playing videos using fileId.
/// To play the video successfully, you need to set the Licence using "SuperPlayerPlugin#setGlobalLicense" method before playing the video.
/// If you do not set the Licence, the video will not play (black screen). The Licence for live streaming,
/// short video, and video playback can all be used. If you have not obtained the Licence, you can apply for a free trial version [here]
/// (https://cloud.tencent.com/act/event/License) for normal playback. To use the official version, you need to [purchase]
/// (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).
/// @params : see[TXPlayInfoParams]
/// return 是否播放成功 if play successful
Future<void> startVodPlayWithParams(TXPlayInfoParamsPlayerMsg arg_params) async { Future<void> startVodPlayWithParams(TXPlayInfoParamsPlayerMsg arg_params) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.startVodPlayWithParams', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.startVodPlayWithParams', codec,
...@@ -1655,6 +1703,8 @@ class TXFlutterVodPlayerApi { ...@@ -1655,6 +1703,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置是否自动播放 /// 设置是否自动播放
///
/// set autoplay
Future<void> setAutoPlay(BoolPlayerMsg arg_isAutoPlay) async { Future<void> setAutoPlay(BoolPlayerMsg arg_isAutoPlay) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setAutoPlay', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setAutoPlay', codec,
...@@ -1678,7 +1728,9 @@ class TXFlutterVodPlayerApi { ...@@ -1678,7 +1728,9 @@ class TXFlutterVodPlayerApi {
} }
/// 停止播放 /// 停止播放
/// return 是否停止成功 ///
/// Stop playback
/// return 是否停止成功 if stop successful
Future<BoolMsg> stop(BoolPlayerMsg arg_isNeedClear) async { Future<BoolMsg> stop(BoolPlayerMsg arg_isNeedClear) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.stop', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.stop', codec,
...@@ -1707,6 +1759,8 @@ class TXFlutterVodPlayerApi { ...@@ -1707,6 +1759,8 @@ class TXFlutterVodPlayerApi {
} }
/// 视频是否处于正在播放中 /// 视频是否处于正在播放中
///
/// Is the video currently playing
Future<BoolMsg> isPlaying(PlayerMsg arg_playerMsg) async { Future<BoolMsg> isPlaying(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.isPlaying', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.isPlaying', codec,
...@@ -1735,6 +1789,8 @@ class TXFlutterVodPlayerApi { ...@@ -1735,6 +1789,8 @@ class TXFlutterVodPlayerApi {
} }
/// 视频暂停,必须在播放器开始播放的时候调用 /// 视频暂停,必须在播放器开始播放的时候调用
///
/// pause video, it must be called when the player starts playing
Future<void> pause(PlayerMsg arg_playerMsg) async { Future<void> pause(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.pause', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.pause', codec,
...@@ -1758,6 +1814,8 @@ class TXFlutterVodPlayerApi { ...@@ -1758,6 +1814,8 @@ class TXFlutterVodPlayerApi {
} }
/// 继续播放,在暂停的时候调用 /// 继续播放,在暂停的时候调用
///
/// resume playback, it should be called when the video is paused
Future<void> resume(PlayerMsg arg_playerMsg) async { Future<void> resume(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.resume', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.resume', codec,
...@@ -1781,6 +1839,8 @@ class TXFlutterVodPlayerApi { ...@@ -1781,6 +1839,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置是否静音 /// 设置是否静音
///
/// Set whether to mute or not
Future<void> setMute(BoolPlayerMsg arg_mute) async { Future<void> setMute(BoolPlayerMsg arg_mute) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setMute', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setMute', codec,
...@@ -1804,6 +1864,8 @@ class TXFlutterVodPlayerApi { ...@@ -1804,6 +1864,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置是否循环播放 /// 设置是否循环播放
///
/// Set whether to loop playback or not
Future<void> setLoop(BoolPlayerMsg arg_loop) async { Future<void> setLoop(BoolPlayerMsg arg_loop) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setLoop', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setLoop', codec,
...@@ -1827,7 +1889,9 @@ class TXFlutterVodPlayerApi { ...@@ -1827,7 +1889,9 @@ class TXFlutterVodPlayerApi {
} }
/// 将视频播放进度定位到指定的进度进行播放 /// 将视频播放进度定位到指定的进度进行播放
/// progress 要定位的视频时间,单位 秒 ///
/// Set the video playback progress to a specific time and start playing.
/// progress 要定位的视频时间,单位 秒 The video playback time to be located, in seconds
Future<void> seek(DoublePlayerMsg arg_progress) async { Future<void> seek(DoublePlayerMsg arg_progress) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.seek', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.seek', codec,
...@@ -1851,6 +1915,8 @@ class TXFlutterVodPlayerApi { ...@@ -1851,6 +1915,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置播放速率,默认速率 1 /// 设置播放速率,默认速率 1
///
/// Set the playback speed, with a default speed of 1.
Future<void> setRate(DoublePlayerMsg arg_rate) async { Future<void> setRate(DoublePlayerMsg arg_rate) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setRate', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setRate', codec,
...@@ -1874,9 +1940,18 @@ class TXFlutterVodPlayerApi { ...@@ -1874,9 +1940,18 @@ class TXFlutterVodPlayerApi {
} }
/// 获得播放视频解析出来的码率信息 /// 获得播放视频解析出来的码率信息
///
/// get the bitrate information extracted from playing a video
/// return List<Map> /// return List<Map>
/// Bitrate键值:index 码率序号,width 码率对应视频宽度, /// Bitrate:index 码率序号,
/// height 码率对应视频高度, bitrate 码率值 /// width 码率对应视频宽度,
/// height 码率对应视频高度,
/// bitrate 码率值
///
/// Bitrate:index:bitrate index,
/// width:the video with of this bitrate,
/// height:the video height of this bitrate,
/// bitrate:bitrate value
Future<ListMsg> getSupportedBitrate(PlayerMsg arg_playerMsg) async { Future<ListMsg> getSupportedBitrate(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getSupportedBitrate', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getSupportedBitrate', codec,
...@@ -1905,6 +1980,8 @@ class TXFlutterVodPlayerApi { ...@@ -1905,6 +1980,8 @@ class TXFlutterVodPlayerApi {
} }
/// 获得当前设置的码率序号 /// 获得当前设置的码率序号
///
/// Get the index of the current bitrate setting
Future<IntMsg> getBitrateIndex(PlayerMsg arg_playerMsg) async { Future<IntMsg> getBitrateIndex(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getBitrateIndex', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getBitrateIndex', codec,
...@@ -1933,6 +2010,8 @@ class TXFlutterVodPlayerApi { ...@@ -1933,6 +2010,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置码率序号 /// 设置码率序号
///
/// Set the index of the bitrate setting.
Future<void> setBitrateIndex(IntPlayerMsg arg_index) async { Future<void> setBitrateIndex(IntPlayerMsg arg_index) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setBitrateIndex', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setBitrateIndex', codec,
...@@ -1956,6 +2035,8 @@ class TXFlutterVodPlayerApi { ...@@ -1956,6 +2035,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置视频播放开始时间,单位 秒 /// 设置视频播放开始时间,单位 秒
///
/// Set the start time of the video playback, in seconds.
Future<void> setStartTime(DoublePlayerMsg arg_startTime) async { Future<void> setStartTime(DoublePlayerMsg arg_startTime) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setStartTime', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setStartTime', codec,
...@@ -1979,6 +2060,8 @@ class TXFlutterVodPlayerApi { ...@@ -1979,6 +2060,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置视频声音 0~100 /// 设置视频声音 0~100
///
/// Set the volume of the video, ranging from 0 to 100.
Future<void> setAudioPlayOutVolume(IntPlayerMsg arg_volume) async { Future<void> setAudioPlayOutVolume(IntPlayerMsg arg_volume) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setAudioPlayOutVolume', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setAudioPlayOutVolume', codec,
...@@ -2002,6 +2085,8 @@ class TXFlutterVodPlayerApi { ...@@ -2002,6 +2085,8 @@ class TXFlutterVodPlayerApi {
} }
/// 请求获得音频焦点 /// 请求获得音频焦点
///
/// Request audio focus.
Future<BoolMsg> setRequestAudioFocus(BoolPlayerMsg arg_focus) async { Future<BoolMsg> setRequestAudioFocus(BoolPlayerMsg arg_focus) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setRequestAudioFocus', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setRequestAudioFocus', codec,
...@@ -2030,7 +2115,9 @@ class TXFlutterVodPlayerApi { ...@@ -2030,7 +2115,9 @@ class TXFlutterVodPlayerApi {
} }
/// 设置播放器配置 /// 设置播放器配置
/// config @see [FTXVodPlayConfigPlayerMsg] ///
/// Set player configuration
/// config @see [FTXVodPlayConfig]
Future<void> setConfig(FTXVodPlayConfigPlayerMsg arg_config) async { Future<void> setConfig(FTXVodPlayConfigPlayerMsg arg_config) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setConfig', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setConfig', codec,
...@@ -2054,6 +2141,8 @@ class TXFlutterVodPlayerApi { ...@@ -2054,6 +2141,8 @@ class TXFlutterVodPlayerApi {
} }
/// 获得当前已经播放的时间,单位 秒 /// 获得当前已经播放的时间,单位 秒
///
/// Get the current playback time, in seconds.
Future<DoubleMsg> getCurrentPlaybackTime(PlayerMsg arg_playerMsg) async { Future<DoubleMsg> getCurrentPlaybackTime(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getCurrentPlaybackTime', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getCurrentPlaybackTime', codec,
...@@ -2082,6 +2171,8 @@ class TXFlutterVodPlayerApi { ...@@ -2082,6 +2171,8 @@ class TXFlutterVodPlayerApi {
} }
/// 获得当前视频已缓存的时间 /// 获得当前视频已缓存的时间
///
/// Get the current amount of video that has been buffered.
Future<DoubleMsg> getBufferDuration(PlayerMsg arg_playerMsg) async { Future<DoubleMsg> getBufferDuration(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getBufferDuration', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getBufferDuration', codec,
...@@ -2110,6 +2201,8 @@ class TXFlutterVodPlayerApi { ...@@ -2110,6 +2201,8 @@ class TXFlutterVodPlayerApi {
} }
/// 获得当前视频的可播放时间 /// 获得当前视频的可播放时间
///
/// Get the current playable duration of the video.
Future<DoubleMsg> getPlayableDuration(PlayerMsg arg_playerMsg) async { Future<DoubleMsg> getPlayableDuration(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getPlayableDuration', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getPlayableDuration', codec,
...@@ -2138,6 +2231,8 @@ class TXFlutterVodPlayerApi { ...@@ -2138,6 +2231,8 @@ class TXFlutterVodPlayerApi {
} }
/// 获得当前播放视频的宽度 /// 获得当前播放视频的宽度
///
/// Get the width of the currently playing video.
Future<IntMsg> getWidth(PlayerMsg arg_playerMsg) async { Future<IntMsg> getWidth(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getWidth', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getWidth', codec,
...@@ -2166,6 +2261,8 @@ class TXFlutterVodPlayerApi { ...@@ -2166,6 +2261,8 @@ class TXFlutterVodPlayerApi {
} }
/// 获得当前播放视频的高度 /// 获得当前播放视频的高度
///
/// Get the height of the currently playing video.
Future<IntMsg> getHeight(PlayerMsg arg_playerMsg) async { Future<IntMsg> getHeight(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getHeight', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getHeight', codec,
...@@ -2194,6 +2291,8 @@ class TXFlutterVodPlayerApi { ...@@ -2194,6 +2291,8 @@ class TXFlutterVodPlayerApi {
} }
/// 设置播放视频的token /// 设置播放视频的token
///
/// Set the token for playing the video.
Future<void> setToken(StringPlayerMsg arg_token) async { Future<void> setToken(StringPlayerMsg arg_token) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.setToken', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.setToken', codec,
...@@ -2217,6 +2316,8 @@ class TXFlutterVodPlayerApi { ...@@ -2217,6 +2316,8 @@ class TXFlutterVodPlayerApi {
} }
/// 当前播放的视频是否循环播放 /// 当前播放的视频是否循环播放
///
/// Is the currently playing video set to loop
Future<BoolMsg> isLoop(PlayerMsg arg_playerMsg) async { Future<BoolMsg> isLoop(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.isLoop', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.isLoop', codec,
...@@ -2245,6 +2346,8 @@ class TXFlutterVodPlayerApi { ...@@ -2245,6 +2346,8 @@ class TXFlutterVodPlayerApi {
} }
/// 开启/关闭硬件编码 /// 开启/关闭硬件编码
///
/// Enable/Disable hardware encoding.
Future<BoolMsg> enableHardwareDecode(BoolPlayerMsg arg_enable) async { Future<BoolMsg> enableHardwareDecode(BoolPlayerMsg arg_enable) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.enableHardwareDecode', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.enableHardwareDecode', codec,
...@@ -2306,6 +2409,8 @@ class TXFlutterVodPlayerApi { ...@@ -2306,6 +2409,8 @@ class TXFlutterVodPlayerApi {
} }
/// 退出画中画,如果该播放器处于画中画模式 /// 退出画中画,如果该播放器处于画中画模式
///
/// Exit picture-in-picture mode if the video player is in picture-in-picture mode.
Future<void> exitPictureInPictureMode(PlayerMsg arg_playerMsg) async { Future<void> exitPictureInPictureMode(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.exitPictureInPictureMode', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.exitPictureInPictureMode', codec,
...@@ -2378,6 +2483,8 @@ class TXFlutterVodPlayerApi { ...@@ -2378,6 +2483,8 @@ class TXFlutterVodPlayerApi {
} }
/// 获取总时长 /// 获取总时长
///
/// To get the total duration
Future<DoubleMsg> getDuration(PlayerMsg arg_playerMsg) async { Future<DoubleMsg> getDuration(PlayerMsg arg_playerMsg) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.TXFlutterVodPlayerApi.getDuration', codec, 'dev.flutter.pigeon.TXFlutterVodPlayerApi.getDuration', codec,
......
...@@ -300,7 +300,6 @@ class _SuperPlayerMoreViewState extends State<SuperPlayerMoreView> { ...@@ -300,7 +300,6 @@ class _SuperPlayerMoreViewState extends State<SuperPlayerMoreView> {
void dispose() { void dispose() {
super.dispose(); super.dispose();
eventSubscription?.cancel(); eventSubscription?.cancel();
SuperPlayerPlugin.restorePageBrightness();
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论