Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
tx_player_fork
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蒋俊
tx_player_fork
Commits
7db2b9ce
提交
7db2b9ce
authored
11月 02, 2023
作者:
kongdywang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、add registerSysBrightness for control android brightness' observer
2、move restorePageBrightness from moreView to demoSuperPlayer
上级
3e550ab0
全部展开
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
93 行增加
和
23 行删除
+93
-23
SuperPlayerPlugin.java
.../main/java/com/tencent/vod/flutter/SuperPlayerPlugin.java
+24
-3
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
+2
-6
API文档.md
Flutter/docs/API文档.md
+35
-11
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
浏览文件 @
7db2b9ce
...
@@ -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
(-
1
D
);
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
);
}
public
void
enableBrightnessObserver
(
boolean
enable
)
{
if
(
null
!=
mActivityPluginBinding
&&
!
mActivityPluginBinding
.
getActivity
().
isDestroyed
())
{
if
(
enable
)
{
if
(!
mIsBrightnessObserverRegistered
)
{
// brightness observer
// brightness observer
ContentResolver
resolver
=
mActivityPluginBinding
.
getActivity
().
getContentResolver
();
ContentResolver
resolver
=
mActivityPluginBinding
.
getActivity
().
getContentResolver
();
resolver
.
registerContentObserver
(
Settings
.
System
.
getUriFor
(
Settings
.
System
.
SCREEN_BRIGHTNESS
),
resolver
.
registerContentObserver
(
Settings
.
System
.
getUriFor
(
Settings
.
System
.
SCREEN_BRIGHTNESS
),
true
,
brightnessObserver
);
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
)
{
...
...
Flutter/android/src/main/java/com/tencent/vod/flutter/messages/FtxMessages.java
浏览文件 @
7db2b9ce
差异被折叠。
点击展开。
Flutter/android/src/main/java/com/tencent/vod/flutter/tools/CommonUtil.java
浏览文件 @
7db2b9ce
...
@@ -61,9 +61,8 @@ public class CommonUtil {
...
@@ -61,9 +61,8 @@ 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
=
255
f
;
float
maxBrightness
=
255
f
;
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"
,
...
@@ -74,15 +73,12 @@ public class CommonUtil {
...
@@ -74,15 +73,12 @@ public class CommonUtil {
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
Log
.
getStackTraceString
(
e
);
Log
.
getStackTraceString
(
e
);
}
}
}
else
{
if
(
CommonUtil
.
isMIUI
()
&&
Build
.
VERSION
.
SDK_INT
>=
33
)
{
maxBrightness
=
128
F
;
maxBrightness
=
128
F
;
}
}
CACHE_MAP
.
put
(
KEY_MAX_BRIGHTNESS
,
maxBrightness
);
CACHE_MAP
.
put
(
KEY_MAX_BRIGHTNESS
,
maxBrightness
);
return
maxBrightness
;
return
maxBrightness
;
}
}
CACHE_MAP
.
put
(
KEY_MAX_BRIGHTNESS
,
255
f
);
return
255
f
;
}
public
static
boolean
isMIUI
()
{
public
static
boolean
isMIUI
()
{
if
(
CACHE_MAP
.
containsKey
(
KEY_IS_MIUI
))
{
if
(
CACHE_MAP
.
containsKey
(
KEY_IS_MIUI
))
{
...
...
Flutter/docs/API文档.md
浏览文件 @
7db2b9ce
...
@@ -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类
...
@@ -1740,17 +1764,17 @@ Future<void> startDownload(TXVodDownloadMediaInfo mediaInfo) async
...
@@ -1740,17 +1764,17 @@ 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? | 资源是否已损坏, 如:资源被删除了 |
...
...
Flutter/example/lib/demo_superplayer.dart
浏览文件 @
7db2b9ce
...
@@ -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
();
}
}
...
...
Flutter/ios/Classes/SuperPlayerPlugin.m
浏览文件 @
7db2b9ce
...
@@ -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
{
...
...
Flutter/ios/Classes/messages/FtxMessages.h
浏览文件 @
7db2b9ce
差异被折叠。
点击展开。
Flutter/ios/Classes/messages/FtxMessages.m
浏览文件 @
7db2b9ce
差异被折叠。
点击展开。
Flutter/lib/Core/pigeons/txplayer_message.dart
浏览文件 @
7db2b9ce
...
@@ -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
()
...
...
Flutter/lib/Core/superplayer_plugin.dart
浏览文件 @
7db2b9ce
...
@@ -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
);
}
}
}
Flutter/lib/Core/txplayer_define.dart
浏览文件 @
7db2b9ce
...
@@ -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.
...
...
Flutter/lib/Core/txplayer_messages.dart
浏览文件 @
7db2b9ce
差异被折叠。
点击展开。
Flutter/superplayer_widget/lib/ui/superplayer_more_view.dart
浏览文件 @
7db2b9ce
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论