Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
tx_player_fork
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蒋俊
tx_player_fork
Commits
6c5fa77a
提交
6c5fa77a
authored
12月 04, 2025
作者:
kongdywang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.fix the issue where getDownloadInfo does not return isResourceBroken
2.when adjusting the volume of UI components, the iOS end no longer seizes the audio focus 3.fix some logical issues with UI components
上级
d3359dfe
显示空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
51 行增加
和
22 行删除
+51
-22
CHANGELOG.md
Flutter/CHANGELOG.md
+13
-0
buildVersionOnMac.sh
Flutter/CI/buildVersionOnMac.sh
+1
-1
config.gradle
Flutter/android/config.gradle
+3
-2
FTXTextureRender.java
...encent/vod/flutter/player/render/gl/FTXTextureRender.java
+1
-1
demo_txvodplayer.dart
Flutter/example/lib/demo_txvodplayer.dart
+1
-1
pubspec.yaml
Flutter/example/pubspec.yaml
+5
-1
FTXAudioManager.m
Flutter/ios/Classes/FTXAudioManager.m
+0
-4
FTXDownloadManager.m
Flutter/ios/Classes/FTXDownloadManager.m
+1
-0
super_player.podspec
Flutter/ios/super_player.podspec
+2
-2
common_config.dart
Flutter/lib/Core/common/common_config.dart
+2
-1
txvoddownload_controller.dart
Flutter/lib/Core/txvoddownload_controller.dart
+1
-0
pubspec.yaml
Flutter/pubspec.yaml
+1
-1
player_constants.dart
...idget/superplayer_widget/lib/common/player_constants.dart
+1
-1
superplayer_controller.dart
...Widget/superplayer_widget/lib/superplayer_controller.dart
+12
-4
superplayer_widget.dart
...rWidget/superplayer_widget/lib/ui/superplayer_widget.dart
+1
-1
pubspec.yaml
FlutterWidget/superplayer_widget/pubspec.yaml
+6
-2
没有找到文件。
Flutter/CHANGELOG.md
浏览文件 @
6c5fa77a
#### Version: 12.9.1 2025.12.04
##### Features:
-
set Android TXLiteAVSDK to 12.9.0.19478
-
set iOS TXLiteAVSDK to 12.9.20085
-
fix the issue where getDownloadInfo does not return isResourceBroken
-
when adjusting the volume of UI components, the iOS end no longer seizes the audio focus
-
fix some logical issues with UI components
-
Fix known issue
#### Version: 12.9.0 2025.11.13
#### Version: 12.9.0 2025.11.13
##### Features:
##### Features:
...
...
Flutter/CI/buildVersionOnMac.sh
浏览文件 @
6c5fa77a
...
@@ -5,7 +5,7 @@ buildLog() {
...
@@ -5,7 +5,7 @@ buildLog() {
}
}
inputVersion
=
$1
inputVersion
=
$1
export
VERSION_NAME
=
"12.9.
0
"
export
VERSION_NAME
=
"12.9.
1
"
if
[
-n
"
$inputVersion
"
]
;
then
if
[
-n
"
$inputVersion
"
]
;
then
VERSION_NAME
=
$inputVersion
VERSION_NAME
=
$inputVersion
fi
fi
...
...
Flutter/android/config.gradle
浏览文件 @
6c5fa77a
...
@@ -4,7 +4,7 @@ rootProject.ext {
...
@@ -4,7 +4,7 @@ rootProject.ext {
supportSdkVersion
=
"26.0.1"
supportSdkVersion
=
"26.0.1"
minSdkVersion
=
19
minSdkVersion
=
19
targetSdkVersion
=
28
targetSdkVersion
=
28
playerVersion
=
"12.9.
0
"
playerVersion
=
"12.9.
1
"
compat
=
"androidx.appcompat:appcompat:1.6.1"
compat
=
"androidx.appcompat:appcompat:1.6.1"
/**
/**
...
@@ -14,5 +14,5 @@ rootProject.ext {
...
@@ -14,5 +14,5 @@ rootProject.ext {
Professional SDK: liteavSdk="com.tencent.liteav:LiteAVSDK_Professional:latest.release"
Professional SDK: liteavSdk="com.tencent.liteav:LiteAVSDK_Professional:latest.release"
If you want to specify the SDK version(eg 11.7.0.13946), use: liteavSdk="com.tencent.liteav:LiteAVSDK_Player:11.7.0.13946"
If you want to specify the SDK version(eg 11.7.0.13946), use: liteavSdk="com.tencent.liteav:LiteAVSDK_Player:11.7.0.13946"
*/
*/
liteavSdk
=
"com.tencent.liteav:LiteAVSDK_Player:12.9.0.194
67
"
liteavSdk
=
"com.tencent.liteav:LiteAVSDK_Player:12.9.0.194
78
"
}
}
\ No newline at end of file
Flutter/android/src/main/java/com/tencent/vod/flutter/player/render/gl/FTXTextureRender.java
浏览文件 @
6c5fa77a
...
@@ -202,7 +202,7 @@ public class FTXTextureRender {
...
@@ -202,7 +202,7 @@ public class FTXTextureRender {
private
void
mergerMatrix
()
{
private
void
mergerMatrix
()
{
// reset
// reset
Matrix
.
setIdentityM
(
mResultMatrix
,
0
);
Matrix
.
setIdentityM
(
mResultMatrix
,
0
);
Matrix
.
multiplyMM
(
mResultMatrix
,
0
,
rotationMatrix
,
0
,
projectionMatrix
,
0
);
Matrix
.
multiplyMM
(
mResultMatrix
,
0
,
projectionMatrix
,
0
,
rotationMatrix
,
0
);
}
}
public
void
cleanDrawCache
()
{
public
void
cleanDrawCache
()
{
...
...
Flutter/example/lib/demo_txvodplayer.dart
浏览文件 @
6c5fa77a
...
@@ -26,7 +26,7 @@ class _DemoTXVodPlayerState extends State<DemoTXVodPlayer> with WidgetsBindingOb
...
@@ -26,7 +26,7 @@ class _DemoTXVodPlayerState extends State<DemoTXVodPlayer> with WidgetsBindingOb
int
_volume
=
100
;
int
_volume
=
100
;
List
_supportedBitrates
=
[];
List
_supportedBitrates
=
[];
int
_curBitrateIndex
=
0
;
int
_curBitrateIndex
=
0
;
String
_url
=
"http://1500005830.vod2.myqcloud.com/43843ec0vodtranscq1500005830/48d0f1f9387702299774251236/adp.10.m3u8"
;
String
_url
=
"http
s
://1500005830.vod2.myqcloud.com/43843ec0vodtranscq1500005830/48d0f1f9387702299774251236/adp.10.m3u8"
;
TXPlayInfoParams
?
_videoParams
;
TXPlayInfoParams
?
_videoParams
;
int
_appId
=
0
;
int
_appId
=
0
;
String
_fileId
=
""
;
String
_fileId
=
""
;
...
...
Flutter/example/pubspec.yaml
浏览文件 @
6c5fa77a
...
@@ -16,7 +16,7 @@ dependencies:
...
@@ -16,7 +16,7 @@ dependencies:
flutter
:
flutter
:
sdk
:
flutter
sdk
:
flutter
flutter_easyloading
:
^
3.0.5
flutter_easyloading
:
3.0.5
super_player
:
super_player
:
# When depending on this package from a real application you should use:
# When depending on this package from a real application you should use:
...
@@ -33,6 +33,10 @@ dependencies:
...
@@ -33,6 +33,10 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons
:
^1.0.2
cupertino_icons
:
^1.0.2
dependency_overrides
:
# force override flutter_easyloading dep
flutter_spinkit
:
5.1.0
dev_dependencies
:
dev_dependencies
:
flutter_test
:
flutter_test
:
sdk
:
flutter
sdk
:
flutter
...
...
Flutter/ios/Classes/FTXAudioManager.m
浏览文件 @
6c5fa77a
...
@@ -42,8 +42,6 @@ NSString *const NOTIFCATION_NAME = @"SystemVolumeDidChange";
...
@@ -42,8 +42,6 @@ NSString *const NOTIFCATION_NAME = @"SystemVolumeDidChange";
{
{
// `showsVolumeSlider` needs to be set to YES.
// `showsVolumeSlider` needs to be set to YES.
volumeView
.
showsVolumeSlider
=
YES
;
volumeView
.
showsVolumeSlider
=
YES
;
// Get audio focus.
[
audioSession
setActive
:
true
error
:
nil
];
[
_volumeSlider
setValue
:
value
animated
:
NO
];
[
_volumeSlider
setValue
:
value
animated
:
NO
];
[
_volumeSlider
sendActionsForControlEvents
:
UIControlEventTouchUpInside
];
[
_volumeSlider
sendActionsForControlEvents
:
UIControlEventTouchUpInside
];
[
_volumeSlider
sizeToFit
];
[
_volumeSlider
sizeToFit
];
...
@@ -51,8 +49,6 @@ NSString *const NOTIFCATION_NAME = @"SystemVolumeDidChange";
...
@@ -51,8 +49,6 @@ NSString *const NOTIFCATION_NAME = @"SystemVolumeDidChange";
-
(
void
)
setVolumeUIVisible
:
(
BOOL
)
volumeUIVisible
-
(
void
)
setVolumeUIVisible
:
(
BOOL
)
volumeUIVisible
{
{
// Get audio focus.
[
audioSession
setActive
:
true
error
:
nil
];
volumeView
.
hidden
=
!
volumeUIVisible
;
volumeView
.
hidden
=
!
volumeUIVisible
;
}
}
...
...
Flutter/ios/Classes/FTXDownloadManager.m
浏览文件 @
6c5fa77a
...
@@ -199,6 +199,7 @@
...
@@ -199,6 +199,7 @@
msg
.
playableDuration
=
@
(
info
.
playableDuration
);
msg
.
playableDuration
=
@
(
info
.
playableDuration
);
msg
.
size
=
@
(
info
.
size
);
msg
.
size
=
@
(
info
.
size
);
msg
.
downloadSize
=
@
(
info
.
downloadSize
);
msg
.
downloadSize
=
@
(
info
.
downloadSize
);
msg
.
isResourceBroken
=
@
(
info
.
isResourceBroken
);
if
(
nil
!=
info
.
url
&&
info
.
url
.
length
>
0
)
{
if
(
nil
!=
info
.
url
&&
info
.
url
.
length
>
0
)
{
msg
.
url
=
info
.
url
;
msg
.
url
=
info
.
url
;
}
}
...
...
Flutter/ios/super_player.podspec
浏览文件 @
6c5fa77a
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
#
#
Pod
::
Spec
.
new
do
|
s
|
Pod
::
Spec
.
new
do
|
s
|
s
.
name
=
'super_player'
s
.
name
=
'super_player'
s
.
version
=
'12.9.
0
'
s
.
version
=
'12.9.
1
'
s
.
summary
=
'The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand).'
s
.
summary
=
'The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand).'
s
.
description
=
<<-
DESC
s
.
description
=
<<-
DESC
player plugin.
player plugin.
...
@@ -26,7 +26,7 @@ player plugin.
...
@@ -26,7 +26,7 @@ player plugin.
# Player_Premium SDK: s.dependency 'TXLiteAVSDK_Player_Premium'
# Player_Premium SDK: s.dependency 'TXLiteAVSDK_Player_Premium'
# Professional SDK: s.dependency 'TXLiteAVSDK_Professional'
# Professional SDK: s.dependency 'TXLiteAVSDK_Professional'
# If you want to specify the SDK version(eg 11.6.15041), use: s.dependency 'TXLiteAVSDK_Player','11.6.15041'
# If you want to specify the SDK version(eg 11.6.15041), use: s.dependency 'TXLiteAVSDK_Player','11.6.15041'
s
.
dependency
'TXLiteAVSDK_Player'
,
'12.9.200
63
'
s
.
dependency
'TXLiteAVSDK_Player'
,
'12.9.200
85
'
# s.dependency 'FTXPiPKit'
# s.dependency 'FTXPiPKit'
s
.
vendored_frameworks
=
[
s
.
vendored_frameworks
=
[
'localdep/FTXPiPKit.xcframework'
'localdep/FTXPiPKit.xcframework'
...
...
Flutter/lib/Core/common/common_config.dart
浏览文件 @
6c5fa77a
...
@@ -2,5 +2,5 @@
...
@@ -2,5 +2,5 @@
part of
SuperPlayer
;
part of
SuperPlayer
;
abstract
class
FPlayerPckInfo
{
abstract
class
FPlayerPckInfo
{
static
const
String
PLAYER_VERSION
=
"12.9.
0
"
;
static
const
String
PLAYER_VERSION
=
"12.9.
1
"
;
}
}
\ No newline at end of file
Flutter/lib/Core/txvoddownload_controller.dart
浏览文件 @
6c5fa77a
...
@@ -219,6 +219,7 @@ class TXVodDownloadController implements TXDownloadFlutterAPI {
...
@@ -219,6 +219,7 @@ class TXVodDownloadController implements TXDownloadFlutterAPI {
mediaInfo
.
size
=
msg
.
size
;
mediaInfo
.
size
=
msg
.
size
;
mediaInfo
.
downloadSize
=
msg
.
downloadSize
;
mediaInfo
.
downloadSize
=
msg
.
downloadSize
;
mediaInfo
.
url
=
msg
.
url
;
mediaInfo
.
url
=
msg
.
url
;
mediaInfo
.
isResourceBroken
=
msg
.
isResourceBroken
;
if
(
null
!=
msg
.
appId
)
{
if
(
null
!=
msg
.
appId
)
{
TXVodDownloadDataSource
dataSource
=
TXVodDownloadDataSource
();
TXVodDownloadDataSource
dataSource
=
TXVodDownloadDataSource
();
dataSource
.
appId
=
msg
.
appId
;
dataSource
.
appId
=
msg
.
appId
;
...
...
Flutter/pubspec.yaml
浏览文件 @
6c5fa77a
name
:
super_player
name
:
super_player
description
:
The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand).
description
:
The super_player Flutter plugin is one of the sub-product SDKs of the audio/video terminal SDK (Tencent Cloud Video on Demand).
version
:
12.9.
0
version
:
12.9.
1
homepage
:
https://github.com/LiteAVSDK/Player_Flutter
homepage
:
https://github.com/LiteAVSDK/Player_Flutter
environment
:
environment
:
...
...
FlutterWidget/superplayer_widget/lib/common/player_constants.dart
浏览文件 @
6c5fa77a
...
@@ -3,5 +3,5 @@ part of demo_super_player_lib;
...
@@ -3,5 +3,5 @@ part of demo_super_player_lib;
class
PlayerConstants
{
class
PlayerConstants
{
static
const
PKG_NAME
=
"superplayer_widget"
;
static
const
PKG_NAME
=
"superplayer_widget"
;
static
const
String
PLAYER_WIDGET_VERSION
=
"12.9.
0
"
;
static
const
String
PLAYER_WIDGET_VERSION
=
"12.9.
1
"
;
}
}
FlutterWidget/superplayer_widget/lib/superplayer_controller.dart
浏览文件 @
6c5fa77a
...
@@ -363,9 +363,9 @@ class SuperPlayerController {
...
@@ -363,9 +363,9 @@ class SuperPlayerController {
callResume
=
false
;
callResume
=
false
;
// Priority use URL to play
// Priority use URL to play
if
(
videoModel
.
videoURL
.
isNotEmpty
)
{
if
(
videoModel
.
videoURL
.
isNotEmpty
)
{
_playWithUrl
(
videoModel
);
await
_playWithUrl
(
videoModel
);
}
else
if
(
videoModel
.
videoId
!=
null
&&
(
videoModel
.
videoId
!.
fileId
.
isNotEmpty
))
{
}
else
if
(
videoModel
.
videoId
!=
null
&&
(
videoModel
.
videoId
!.
fileId
.
isNotEmpty
))
{
_playWithField
(
videoModel
);
await
_playWithField
(
videoModel
);
}
}
}
}
...
@@ -373,6 +373,14 @@ class SuperPlayerController {
...
@@ -373,6 +373,14 @@ class SuperPlayerController {
_setVodListener
();
_setVodListener
();
await
_vodPlayerController
.
setToken
(
null
);
await
_vodPlayerController
.
setToken
(
null
);
_updatePlayerType
(
SuperPlayerType
.
VOD
);
_updatePlayerType
(
SuperPlayerType
.
VOD
);
await
_vodPlayerController
.
setStartTime
(
startPos
);
if
(
_playAction
==
SuperPlayerModel
.
PLAY_ACTION_PRELOAD
)
{
await
_vodPlayerController
.
setAutoPlay
(
isAutoPlay:
false
);
_playAction
=
SuperPlayerModel
.
PLAY_ACTION_AUTO_PLAY
;
}
else
if
(
_playAction
==
SuperPlayerModel
.
PLAY_ACTION_AUTO_PLAY
||
_playAction
==
SuperPlayerModel
.
PLAY_ACTION_MANUAL_PLAY
)
{
await
_vodPlayerController
.
setAutoPlay
(
isAutoPlay:
true
);
}
if
(
_curViewId
>=
0
)
{
if
(
_curViewId
>=
0
)
{
setPlayerView
(
_curViewId
);
setPlayerView
(
_curViewId
);
}
}
...
@@ -438,7 +446,7 @@ class SuperPlayerController {
...
@@ -438,7 +446,7 @@ class SuperPlayerController {
return
await
_vodPlayerController
.
getPlayableDuration
();
return
await
_vodPlayerController
.
getPlayableDuration
();
}
}
void
_playWithUrl
(
SuperPlayerModel
model
)
{
Future
<
void
>
_playWithUrl
(
SuperPlayerModel
model
)
async
{
List
<
VideoQuality
>
videoQualities
=
[];
List
<
VideoQuality
>
videoQualities
=
[];
VideoQuality
?
defaultVideoQuality
;
VideoQuality
?
defaultVideoQuality
;
String
?
videoUrl
;
String
?
videoUrl
;
...
@@ -540,7 +548,7 @@ class SuperPlayerController {
...
@@ -540,7 +548,7 @@ class SuperPlayerController {
/// Play live streaming
/// Play live streaming
/// 播放直播URL
/// 播放直播URL
void
_playLiveURL
(
String
url
)
async
{
Future
<
void
>
_playLiveURL
(
String
url
)
async
{
_currentPlayUrl
=
url
;
_currentPlayUrl
=
url
;
_setLiveListener
();
_setLiveListener
();
if
(
_curViewId
>=
0
)
{
if
(
_curViewId
>=
0
)
{
...
...
FlutterWidget/superplayer_widget/lib/ui/superplayer_widget.dart
浏览文件 @
6c5fa77a
...
@@ -700,7 +700,7 @@ class SuperPlayerViewState extends State<SuperPlayerView> with WidgetsBindingObs
...
@@ -700,7 +700,7 @@ class SuperPlayerViewState extends State<SuperPlayerView> with WidgetsBindingObs
int
playAction
=
_playController
.
videoModel
!.
playAction
;
int
playAction
=
_playController
.
videoModel
!.
playAction
;
if
(
playerState
==
SuperPlayerState
.
LOADING
&&
playAction
==
SuperPlayerModel
.
PLAY_ACTION_PRELOAD
)
{
if
(
playerState
==
SuperPlayerState
.
LOADING
&&
playAction
==
SuperPlayerModel
.
PLAY_ACTION_PRELOAD
)
{
_playController
.
resume
();
_playController
.
resume
();
}
else
if
(
playerState
==
SuperPlayerState
.
INIT
)
{
}
else
if
(
playerState
==
SuperPlayerState
.
INIT
||
playerState
==
SuperPlayerState
.
START
)
{
if
(
playAction
==
SuperPlayerModel
.
PLAY_ACTION_PRELOAD
)
{
if
(
playAction
==
SuperPlayerModel
.
PLAY_ACTION_PRELOAD
)
{
_playController
.
resume
();
_playController
.
resume
();
}
else
if
(
playAction
==
SuperPlayerModel
.
PLAY_ACTION_MANUAL_PLAY
)
{
}
else
if
(
playAction
==
SuperPlayerModel
.
PLAY_ACTION_MANUAL_PLAY
)
{
...
...
FlutterWidget/superplayer_widget/pubspec.yaml
浏览文件 @
6c5fa77a
name
:
superplayer_widget
name
:
superplayer_widget
description
:
superplayer,base on vodplayer
description
:
superplayer,base on vodplayer
version
:
12.9.
0
version
:
12.9.
1
environment
:
environment
:
sdk
:
'
>=2.17.0
<4.0.0'
sdk
:
'
>=2.17.0
<4.0.0'
...
@@ -12,7 +12,7 @@ dependencies:
...
@@ -12,7 +12,7 @@ dependencies:
# internationalization
# internationalization
flutter_localizations
:
flutter_localizations
:
sdk
:
flutter
sdk
:
flutter
flutter_easyloading
:
^
3.0.5
flutter_easyloading
:
3.0.5
super_player
:
super_player
:
# When depending on this package from a real application you should use:
# When depending on this package from a real application you should use:
...
@@ -22,6 +22,10 @@ dependencies:
...
@@ -22,6 +22,10 @@ dependencies:
# the parent directory to use the current plugin's version.
# the parent directory to use the current plugin's version.
path
:
../../Flutter
path
:
../../Flutter
dependency_overrides
:
# force override flutter_easyloading dep
flutter_spinkit
:
5.1.0
dev_dependencies
:
dev_dependencies
:
flutter_test
:
flutter_test
:
sdk
:
flutter
sdk
:
flutter
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论