Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
tx_player_fork
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蒋俊
tx_player_fork
Commits
cf887068
提交
cf887068
authored
11月 02, 2023
作者:
kongdywang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、add registerSysBrightness for control android brightness' observer
2、move restorePageBrightness from moreView to demoSuperPlayer
上级
034be03d
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
113 行增加
和
43 行删除
+113
-43
SuperPlayerPlugin.java
.../main/java/com/tencent/vod/flutter/SuperPlayerPlugin.java
+28
-7
FtxMessages.java
...in/java/com/tencent/vod/flutter/messages/FtxMessages.java
+0
-0
CommonUtil.java
...c/main/java/com/tencent/vod/flutter/tools/CommonUtil.java
+15
-19
API文档.md
Flutter/docs/API文档.md
+38
-14
demo_superplayer.dart
Flutter/example/lib/demo_superplayer.dart
+6
-0
SuperPlayerPlugin.m
Flutter/ios/Classes/SuperPlayerPlugin.m
+4
-0
FtxMessages.h
Flutter/ios/Classes/messages/FtxMessages.h
+0
-0
FtxMessages.m
Flutter/ios/Classes/messages/FtxMessages.m
+0
-0
txplayer_message.dart
Flutter/lib/Core/pigeons/txplayer_message.dart
+5
-0
superplayer_plugin.dart
Flutter/lib/Core/superplayer_plugin.dart
+11
-0
txplayer_define.dart
Flutter/lib/Core/txplayer_define.dart
+6
-2
txplayer_messages.dart
Flutter/lib/Core/txplayer_messages.dart
+0
-0
superplayer_more_view.dart
Flutter/superplayer_widget/lib/ui/superplayer_more_view.dart
+0
-1
没有找到文件。
Flutter/android/src/main/java/com/tencent/vod/flutter/SuperPlayerPlugin.java
浏览文件 @
cf887068
...
...
@@ -85,6 +85,8 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
private
int
mCurrentOrientation
=
FTXEvent
.
ORIENTATION_PORTRAIT_UP
;
private
final
TXFlutterEngineHolder
mEngineHolder
=
new
TXFlutterEngineHolder
();
private
boolean
mIsBrightnessObserverRegistered
=
false
;
private
final
FTXAudioManager
.
AudioFocusChangeListener
audioFocusChangeListener
=
new
FTXAudioManager
.
AudioFocusChangeListener
()
{
@Override
...
...
@@ -102,8 +104,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
@Override
public
void
onChange
(
boolean
selfChange
,
@NonNull
Collection
<
Uri
>
uris
,
int
flags
)
{
super
.
onChange
(
selfChange
,
uris
,
flags
);
double
systemBrightness
=
getSystemScreenBrightness
();
setWindowBrightness
(
systemBrightness
);
setWindowBrightness
(-
1
D
);
}
};
...
...
@@ -449,10 +450,23 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
IntentFilter
filter
=
new
IntentFilter
();
filter
.
addAction
(
VOLUME_CHANGED_ACTION
);
mActivityPluginBinding
.
getActivity
().
registerReceiver
(
mVolumeBroadcastReceiver
,
filter
);
// brightness observer
ContentResolver
resolver
=
mActivityPluginBinding
.
getActivity
().
getContentResolver
();
resolver
.
registerContentObserver
(
Settings
.
System
.
getUriFor
(
Settings
.
System
.
SCREEN_BRIGHTNESS
),
true
,
brightnessObserver
);
}
public
void
enableBrightnessObserver
(
boolean
enable
)
{
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,
try
{
mTxAudioManager
.
removeAudioFocusChangedListener
(
audioFocusChangeListener
);
mActivityPluginBinding
.
getActivity
().
unregisterReceiver
(
mVolumeBroadcastReceiver
);
mActivityPluginBinding
.
getActivity
().
getContentResolver
().
unregisterContentObserver
(
brightnessObserver
);
enableBrightnessObserver
(
false
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -548,6 +562,13 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
return
intMsg
;
}
@Override
public
void
registerSysBrightness
(
@NonNull
BoolMsg
isRegister
)
{
if
(
null
!=
isRegister
.
getValue
())
{
enableBrightnessObserver
(
isRegister
.
getValue
());
}
}
private
class
VolumeBroadcastReceiver
extends
BroadcastReceiver
{
public
void
onReceive
(
Context
context
,
Intent
intent
)
{
...
...
Flutter/android/src/main/java/com/tencent/vod/flutter/messages/FtxMessages.java
浏览文件 @
cf887068
差异被折叠。
点击展开。
Flutter/android/src/main/java/com/tencent/vod/flutter/tools/CommonUtil.java
浏览文件 @
cf887068
...
...
@@ -61,27 +61,23 @@ public class CommonUtil {
if
(
CACHE_MAP
.
containsKey
(
KEY_MAX_BRIGHTNESS
))
{
//noinspection ConstantConditions
return
(
float
)
CACHE_MAP
.
get
(
KEY_MAX_BRIGHTNESS
);
}
else
if
(
CommonUtil
.
isMIUI
())
{
float
maxBrightness
=
255
f
;
if
(
Build
.
VERSION
.
SDK_INT
<
33
)
{
try
{
Resources
system
=
Resources
.
getSystem
();
int
resId
=
system
.
getIdentifier
(
"config_screenBrightnessSettingMaximum"
,
"integer"
,
"android"
);
if
(
resId
!=
0
)
{
maxBrightness
=
system
.
getInteger
(
resId
);
}
}
catch
(
Exception
e
)
{
Log
.
getStackTraceString
(
e
);
}
}
else
{
maxBrightness
=
128
F
;
}
float
maxBrightness
=
255
f
;
try
{
Resources
system
=
Resources
.
getSystem
();
int
resId
=
system
.
getIdentifier
(
"config_screenBrightnessSettingMaximum"
,
"integer"
,
"android"
);
if
(
resId
!=
0
)
{
maxBrightness
=
system
.
getInteger
(
resId
);
}
CACHE_MAP
.
put
(
KEY_MAX_BRIGHTNESS
,
maxBrightness
);
return
maxBrightness
;
}
catch
(
Exception
e
)
{
Log
.
getStackTraceString
(
e
);
}
if
(
CommonUtil
.
isMIUI
()
&&
Build
.
VERSION
.
SDK_INT
>=
33
)
{
maxBrightness
=
128
F
;
}
CACHE_MAP
.
put
(
KEY_MAX_BRIGHTNESS
,
255
f
);
return
255
f
;
CACHE_MAP
.
put
(
KEY_MAX_BRIGHTNESS
,
maxBrightness
);
return
maxBrightness
;
}
public
static
boolean
isMIUI
()
{
...
...
Flutter/docs/API文档.md
浏览文件 @
cf887068
...
...
@@ -443,6 +443,30 @@ static Future<bool> startVideoOrientationService() async
| result | bool | true 开启成功,false 开启失败,如开启过早,还未等到上下文初始化、获取sensor失败等原因 |
### registerSysBrightness
**说明**
开启或关闭对于系统亮度的监听,如果开启,当系统亮度发生变化,会改变当前window亮度,并回调亮度到flutter层。该接口需配合
setBrightness和onExtraEventBroadcast使用。
**接口**
```
dart
static
Future
<
void
>
registerSysBrightness
(
bool
isRegister
)
async
```
**参数说明**
| 参数名 | 类型 | 描述 |
| ------ | ------ |-------------------------|
| isRegister | bool | true 开启建提高,false 关闭监听 |
**返回值说明**
无
## TXVodPlayerController类
...
...
@@ -1739,20 +1763,20 @@ Future<void> startDownload(TXVodDownloadMediaInfo mediaInfo) async
**TXVodDownloadMediaInfo**
| 参数名 | 类型 | 描述 |
| ------ | ------ |
------------------
|
| playPath | String? | 缓存地址,获得到的视频缓存会有该值,启动下载可以不赋值|
| progress | double? | 缓存进度,获得到的视频缓存会有该值,启动下载可以不赋值|
| downloadState | int? | 缓存状态,获得到的视频缓存会有该值,启动下载可以不赋值|
| userName | String? | 下载账户名称,用于区分不同账户的下载,传空则为 default|
| duration | int? | 缓存视频总时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值|
| playableDuration | int? | 视频已缓存时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值|
| size | int? | 文件总大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值|
| downloadSize | int? | 文件已下载的大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值|
| url | String? | 需要下载的视频url,url下载必填,不支持嵌套m3u8和mp4下载|
| dataSource | TXVodDownloadDataSource? | 需要下载的视频fileId信息,url与该参数可只使用一个|
| speed | int? | 下载速度,单位:KByte/秒 |
| isResourceBroken | bool? | 资源是否已损坏, 如:资源被删除了 |
| 参数名 | 类型 | 描述
|
| ------ | ------ |
-----------------------------------------------
|
| playPath | String? | 缓存地址,获得到的视频缓存会有该值,启动下载可以不赋值
|
| progress | double? | 缓存进度,获得到的视频缓存会有该值,启动下载可以不赋值
|
| downloadState | int? | 缓存状态,获得到的视频缓存会有该值,启动下载可以不赋值
|
| userName | String? | 下载账户名称,用于区分不同账户的下载,传空则为 default
,不建议设置比较长的字符串
|
| duration | int? | 缓存视频总时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值
|
| playableDuration | int? | 视频已缓存时长,安卓端单位为毫秒,IOS为秒,获得到的视频缓存会有该值,启动下载可以不赋值
|
| size | int? | 文件总大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值
|
| downloadSize | int? | 文件已下载的大小,单位:byte,获得到的视频缓存会有该值,启动下载可以不赋值
|
| url | String? | 需要下载的视频url,url下载必填,不支持嵌套m3u8和mp4下载
|
| dataSource | TXVodDownloadDataSource? | 需要下载的视频fileId信息,url与该参数可只使用一个
|
| speed | int? | 下载速度,单位:KByte/秒
|
| isResourceBroken | bool? | 资源是否已损坏, 如:资源被删除了
|
**TXVodDownloadDataSource**
...
...
Flutter/example/lib/demo_superplayer.dart
浏览文件 @
cf887068
...
...
@@ -46,6 +46,8 @@ class _DemoSuperPlayerState extends State<DemoSuperPlayer> with TXPipPlayerResto
super
.
initState
();
// Listen for device rotation.
SuperPlayerPlugin
.
startVideoOrientationService
();
// open brightness observer
SuperPlayerPlugin
.
registerSysBrightness
(
true
);
_controller
=
SuperPlayerController
(
context
);
TXPipController
.
instance
.
setPipPlayerPage
(
this
);
FTXVodPlayConfig
config
=
FTXVodPlayConfig
();
...
...
@@ -417,6 +419,10 @@ class _DemoSuperPlayerState extends State<DemoSuperPlayer> with TXPipPlayerResto
// must invoke when page exit.
_controller
.
releasePlayer
();
simpleEventSubscription
?.
cancel
();
// restore current brightness to sys brightness
SuperPlayerPlugin
.
restorePageBrightness
();
// unregister brightness observer
SuperPlayerPlugin
.
registerSysBrightness
(
false
);
super
.
dispose
();
}
...
...
Flutter/ios/Classes/SuperPlayerPlugin.m
浏览文件 @
cf887068
...
...
@@ -359,6 +359,10 @@ SuperPlayerPlugin* instance;
[
audioManager
setVolume
:
volumeNum
.
floatValue
];
}
-
(
void
)
registerSysBrightnessIsRegister
:
(
BoolMsg
*
)
isRegister
error
:
(
FlutterError
*
_Nullable
__autoreleasing
*
)
error
{
// only for android
}
#pragma mark DataBridge
-
(
NSMutableDictionary
*
)
getPlayers
{
...
...
Flutter/ios/Classes/messages/FtxMessages.h
浏览文件 @
cf887068
差异被折叠。
点击展开。
Flutter/ios/Classes/messages/FtxMessages.m
浏览文件 @
cf887068
差异被折叠。
点击展开。
Flutter/lib/Core/pigeons/txplayer_message.dart
浏览文件 @
cf887068
...
...
@@ -365,6 +365,11 @@ abstract class TXFlutterNativeAPI {
/// -102 画中画权限关闭/设备不支持画中画
/// -103 当前界面已销毁
IntMsg
isDeviceSupportPip
();
///
/// register or unregister system brightness
///
void
registerSysBrightness
(
BoolMsg
isRegister
);
}
@HostApi
()
...
...
Flutter/lib/Core/superplayer_plugin.dart
浏览文件 @
cf887068
...
...
@@ -260,4 +260,15 @@ class SuperPlayerPlugin {
BoolMsg
boolMsg
=
await
_playerPluginApi
.
startVideoOrientationService
();
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
);
}
}
Flutter/lib/Core/txplayer_define.dart
浏览文件 @
cf887068
...
...
@@ -547,7 +547,9 @@ class TXVodDownloadDataSource {
String
?
token
;
/// 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
;
Map
<
String
,
dynamic
>
toJson
()
{
...
...
@@ -578,7 +580,9 @@ class TXVodDownloadMediaInfo {
int
?
downloadState
;
/// 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
;
/// Total duration.
...
...
Flutter/lib/Core/txplayer_messages.dart
浏览文件 @
cf887068
差异被折叠。
点击展开。
Flutter/superplayer_widget/lib/ui/superplayer_more_view.dart
浏览文件 @
cf887068
...
...
@@ -300,7 +300,6 @@ class _SuperPlayerMoreViewState extends State<SuperPlayerMoreView> {
void
dispose
()
{
super
.
dispose
();
eventSubscription
?.
cancel
();
SuperPlayerPlugin
.
restorePageBrightness
();
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论