提交 991420ac authored 作者: kongdywang's avatar kongdywang

1、this is the last OpenGL Share Context version of the surface

2、update to 12.3.0 3、Optimize documents Optimize documents
上级 a92e877e
./CI
./lib/Core/pigeons
\ No newline at end of file
#### Version: 1.0.3
##### 分支描述: #### Version: 12.3.0 2025.01.21
main 分支:Android & iOS 端集成TXLiteAVSDK_Player lastest版本 ##### Features:
Professional 分支:Android & iOS 端集成TXLiteAVSDK_Professional lastest版本 - set Android TXLiteAVSDK_Player to 12.3.0.17115,tag:release_player_v12.3.0
- set iOS TXLiteAVSDK_Player to 12.3.16995, tag:release_player_v12.3.0
版本特性:
- iOS 端新增画中画(PIP) 功能 #### Version: 12.2.2 2024.12.30
##### Features:
#### Version: 1.0.2 2022.07.05 - Fix the issue where Android crashes when restoring from PIP.
##### 版本特性:
- Android 端新增画中画(PIP) 功能 #### Version: 12.2.1 2024.12.27
- 播放器组件(superplayer)用Dart重写,方便自定义集成
- 修复通过appId 、fileId和 psign 播放失败问题
- set Android TXLiteAVSDK_Player to 10.2.0.11131,tag:release_player_v1.0.2 ##### Features:
- set iOS TXLiteAVSDK_Player to 10.2.11418, tag:release_pro_v1.0.2
#### Version: 1.0.3 2022.07.13 - set Android TXLiteAVSDK_Player to 12.2.0.15065,tag:release_player_v12.2.0
- set iOS TXLiteAVSDK_Player to 12.2.16945, tag:release_player_v12.2.0
- Fix the issue that picture-in-picture cannot be launched on some Android systems.
- Fix the issue of abnormal use after cold startup on some Android systems.
- Fix the issue that there is no subtitle callback without setting config on iOS.
- Fix the issue that there is no callback in some cases of downloading and pre-downloading.
- Add DRM playback API.
- Fix other known issues.
##### 版本特性:
- iOS端新增画中画(PIP) 功能 #### Version: 12.2.0 2024.12.04
- set Android TXLiteAVSDK_Player to 10.3.0.11144,tag:release_player_v1.0.3
- set iOS TXLiteAVSDK_Player to 10.3.11513, tag:release_pro_v1.0.3
#### Version: 1.0.4 2022.08.16 ##### Features:
##### 版本特性: - set Android TXLiteAVSDK_Player to 12.2.0.15065,tag:release_player_v12.2.0
- set iOS TXLiteAVSDK_Player to 12.2.16945, tag:release_player_v12.2.0
- Pre-download supports httpHeader
- Supports encrypted playback of MP4
- Added support for HEVC playback downgrade
- Fix other known issues.
- set Android TXLiteAVSDK_Player to 10.4.0.11164,tag:release_player_v1.0.4
- set iOS TXLiteAVSDK_Player to 10.4.11617, tag:release_player_v1.0.4
#### Version: 1.0.5 2022.09.02 #### Version: 12.1.0 2024.11.20
##### 版本特性 ##### Features
- set Android TXLiteAVSDK_Player to 10.5.0.11177,tag:release_player_v1.0.5 - set Android TXLiteAVSDK_Player to 12.0.0.14689,tag:release_player_v12.0.1
- set iOS TXLiteAVSDK_Player to 10.5.11726, tag:release_player_v1.0.5 - set iOS TXLiteAVSDK_Player to 12.0.16301, tag:release_player_v12.0.1
- Fix the issue of reversed logic in the live streaming mute method.
- iOS adds support for Picture-in-Picture for live streaming, which requires premium permission to use.
- Fix other known issues.
#### Version: 1.0.6 2022.09.19
##### 版本特性: #### Version: 12.0.1 2024.09.14
- set Android TXLiteAVSDK_Player to 10.6.0.11182,tag:release_player_v1.0.6 ##### Features:
- set iOS TXLiteAVSDK_Player to 10.6.11822, tag:release_player_v1.0.6
- set Android TXLiteAVSDK_Player to 12.0.0.14689,tag:release_player_v12.0.1
- set iOS TXLiteAVSDK_Player to 12.0.16301, tag:release_player_v12.0.1
- Fix the issue where textures are not refreshed in some cases
- Fix the issue where updating Picture-in-Picture produces errors when Picture-in-Picture ends in some cases
- Modify the plugin callback Flutter side message architecture
- During SDK initialization, all modules are changed to lazy loading
- The demo and player components no longer need to force set the language; if not set, it defaults to English
#### Version: 1.0.7 2022.10.27
##### 版本特性: #### Version: 12.0.0 2024.08.21
- set Android TXLiteAVSDK_Player to 10.7.0.13053,tag:release_player_v1.0.7 ##### Features:
- set iOS TXLiteAVSDK_Player to 10.7.11936, tag:release_player_v1.0.7
- set Android TXLiteAVSDK_Player to 12.0.0.14681,tag:release_player_v12.0.0
- set iOS TXLiteAVSDK_Player to 12.0.16292, tag:release_player_v12.0.0
- Live streaming replaces the new kernel.
- As the new kernel has been replaced, the live streaming live config currently only retains the properties of maxAutoAdjustCacheTime, minAutoAdjustCacheTime, connectRetryCount, and connectRetryInterval, with the rest of the parameters marked as deprecated.
- New interfaces have been added to live streaming: enableReceiveSeiMessage, showDebugView, setProperty, getSupportedBitrate, and setCacheParams.
- When playing live streaming, there is no longer a need to pass the playType parameter, which has been deprecated.
- The live streaming and on-demand demo pages have added logic to wait for the license to load successfully before playing.
- Other known issues have been fixed.
#### Version: 10.8.0 2022.12.01
##### 版本特性: #### Version: 11.9.1 2024.06.05
- set Android TXLiteAVSDK_Player to 10.8.0.13052,tag:release_player_v10.0.8 ##### Features:
- set iOS TXLiteAVSDK_Player to 10.8.12015, tag:release_player_v10.0.8
- fix playback failed when in pip after recover from lock screen
- TXVodPlayerController has introduced a new setStringOption interface for configuring extensions.
- The Flutter side's operation of the player can now affect the UI updates for playing and pausing in the picture-in-picture window.
- Fixed potential memory leak issues.
- Optimized the logic of superPlayer Widget
- Fixed other known issues.
#### Version: 10.8.0_stable 2022.12.01
##### 版本特性: #### Version: 11.9.0 2024.06.05
- set Android TXLiteAVSDK_Player to 10.8.0.13065,tag:release_player_v10.0.8_stable ##### Features:
- set iOS TXLiteAVSDK_Player to 10.8.12025, tag:release_player_v10.0.8_stable
- set Android TXLiteAVSDK_Player to 11.9.0.14445,tag:release_player_v11.9.0
- set iOS TXLiteAVSDK_Player to 11.9.15963, tag:release_player_v11.9.0
- Android compatible with high version Gradle
- The location of the superPlayerWidget has changed, integrating superPlayer will no longer include the source code of the superPlayerWidget
- Android picture-in-picture feature logic optimization, compatible with more models
#### Version: 10.9.0 2023.01.03
##### 版本特性: #### Version: 11.8.1 2024.05.22
- set Android TXLiteAVSDK_Player to 10.9.0.13092,tag:release_player_v10.9.0 ##### Features:
- set iOS TXLiteAVSDK_Player to 10.9.13148, tag:release_player_v10.9.0
- set Android TXLiteAVSDK_Player to 11.8.0.14188,tag:release_player_v11.8.1
- set iOS TXLiteAVSDK_Player to 11.8.15687, tag:release_player_v11.8.1
#### Version: 10.9.1 2023.02.24
#### Version: 11.8.0 2024.05.06
##### Features:
- set Android TXLiteAVSDK_Player to 11.8.0.14176,tag:release_player_v11.8.0
- set iOS TXLiteAVSDK_Player to 11.8.15669, tag:release_player_v11.8.0
#### Version: 11.7.0 2024.04.02
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 10.9.0.13102,tag:release_player_v10.9.1 - set Android TXLiteAVSDK_Player to 11.7.0.13946,tag:release_player_v11.7.0
- set iOS TXLiteAVSDK_Player to 10.9.13161, tag:release_player_v10.9.1 - set iOS TXLiteAVSDK_Player to 11.7.15343, tag:release_player_v11.7.0
- Add setSDKListener in SuperPlayerPlugin
- fix known issues
#### Version: 11.0.0 2023.03.20 #### Version: 11.6.1 2024.01.29
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.0.0.13129,tag:release_player_v11.0.0 - set Android TXLiteAVSDK_Player to 11.6.0.13641,tag:release_player_v11.6.1
- set iOS TXLiteAVSDK_Player to 11.0.14032, tag:release_player_v11.0.0 - set iOS TXLiteAVSDK_Player to 11.6.15041, tag:release_player_v11.6.1
- superPlayerWidget add renderMode config
- superPlayerWidget add stopPlay method
- vod/live dispose method can await now
- fix known issues
#### Version: 11.1.0 2023.04.10 #### Version: 11.6.0 2024.01.11
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.1.0.13111,tag:release_player_v11.1.0 - set Android TXLiteAVSDK_Player to 11.6.0.13613,tag:release_player_v11.6.0
- set iOS TXLiteAVSDK_Player to 11.1.14125, tag:release_player_v11.1.0 - set iOS TXLiteAVSDK_Player to 11.6.15007, tag:release_player_v11.6.0
- Adapt the Flutter player to the new version of the Flutter SDK
- fix player and player's widget known issues
#### Version: 11.1.1 2023.05.08 #### Version: 11.4.1 2023.12.20
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.1.0.13141,tag:release_player_v11.1.1 - set Android TXLiteAVSDK_Player to 11.4.0.13270,tag:release_player_v11.4.1
- set iOS TXLiteAVSDK_Player to 11.1.14143, tag:release_player_v11.1.1 - set iOS TXLiteAVSDK_Player to 11.4.14552, tag:release_player_v11.4.1
- add fileId pre-download capability
- fix known issues
#### Version: 11.2.0 2023.06.05 #### Version: 11.4.0 2023.08.30
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.2.0.13154,tag:release_player_v11.2.0 - set Android TXLiteAVSDK_Player to 11.4.0.13189,tag:release_player_v11.4.0
- set iOS TXLiteAVSDK_Player to 11.2.14217, tag:release_player_v11.2.0 - set iOS TXLiteAVSDK_Player to 11.4.14445, tag:release_player_v11.4.0
#### Version: 11.3.0 2023.07.07 #### Version: 11.3.0 2023.07.07
...@@ -130,151 +174,108 @@ Professional 分支:Android & iOS 端集成TXLiteAVSDK_Professional lastest版 ...@@ -130,151 +174,108 @@ Professional 分支:Android & iOS 端集成TXLiteAVSDK_Professional lastest版
- set Android TXLiteAVSDK_Player to 11.3.0.13171,tag:release_player_v11.3.0 - set Android TXLiteAVSDK_Player to 11.3.0.13171,tag:release_player_v11.3.0
- set iOS TXLiteAVSDK_Player to 11.3.14327, tag:release_player_v11.3.0 - set iOS TXLiteAVSDK_Player to 11.3.14327, tag:release_player_v11.3.0
#### Version: 11.4.0 2023.08.30
#### Version: 11.2.0 2023.06.05
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.4.0.13189,tag:release_player_v11.4.0 - set Android TXLiteAVSDK_Player to 11.2.0.13154,tag:release_player_v11.2.0
- set iOS TXLiteAVSDK_Player to 11.4.14445, tag:release_player_v11.4.0 - set iOS TXLiteAVSDK_Player to 11.2.14217, tag:release_player_v11.2.0
#### Version: 11.4.1 2023.12.20 #### Version: 11.1.1 2023.05.08
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.4.0.13270,tag:release_player_v11.4.1 - set Android TXLiteAVSDK_Player to 11.1.0.13141,tag:release_player_v11.1.1
- set iOS TXLiteAVSDK_Player to 11.4.14552, tag:release_player_v11.4.1 - set iOS TXLiteAVSDK_Player to 11.1.14143, tag:release_player_v11.1.1
- add fileId pre-download capability
- fix known issues
#### Version: 11.6.0 2024.01.11 #### Version: 11.1.0 2023.04.10
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.6.0.13613,tag:release_player_v11.6.0 - set Android TXLiteAVSDK_Player to 11.1.0.13111,tag:release_player_v11.1.0
- set iOS TXLiteAVSDK_Player to 11.6.15007, tag:release_player_v11.6.0 - set iOS TXLiteAVSDK_Player to 11.1.14125, tag:release_player_v11.1.0
- Adapt the Flutter player to the new version of the Flutter SDK
- fix player and player's widget known issues
#### Version: 11.6.1 2024.01.29 #### Version: 11.0.0 2023.03.20
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.6.0.13641,tag:release_player_v11.6.1 - set Android TXLiteAVSDK_Player to 11.0.0.13129,tag:release_player_v11.0.0
- set iOS TXLiteAVSDK_Player to 11.6.15041, tag:release_player_v11.6.1 - set iOS TXLiteAVSDK_Player to 11.0.14032, tag:release_player_v11.0.0
- superPlayerWidget add renderMode config
- superPlayerWidget add stopPlay method
- vod/live dispose method can await now
- fix known issues
#### Version: 11.7.0 2024.04.02 #### Version: 10.9.1 2023.02.24
##### 版本特性: ##### 版本特性:
- set Android TXLiteAVSDK_Player to 11.7.0.13946,tag:release_player_v11.7.0 - set Android TXLiteAVSDK_Player to 10.9.0.13102,tag:release_player_v10.9.1
- set iOS TXLiteAVSDK_Player to 11.7.15343, tag:release_player_v11.7.0 - set iOS TXLiteAVSDK_Player to 10.9.13161, tag:release_player_v10.9.1
- Add setSDKListener in SuperPlayerPlugin
- fix known issues
#### Version: 11.8.0 2024.05.06
##### Features: #### Version: 10.9.0 2023.01.03
- set Android TXLiteAVSDK_Player to 11.8.0.14176,tag:release_player_v11.8.0 ##### 版本特性:
- set iOS TXLiteAVSDK_Player to 11.8.15669, tag:release_player_v11.8.0
#### Version: 11.8.1 2024.05.22 - set Android TXLiteAVSDK_Player to 10.9.0.13092,tag:release_player_v10.9.0
- set iOS TXLiteAVSDK_Player to 10.9.13148, tag:release_player_v10.9.0
##### Features:
- set Android TXLiteAVSDK_Player to 11.8.0.14188,tag:release_player_v11.8.1 #### Version: 10.8.0_stable 2022.12.01
- set iOS TXLiteAVSDK_Player to 11.8.15687, tag:release_player_v11.8.1
#### Version: 11.9.0 2024.06.05 ##### 版本特性:
##### Features: - set Android TXLiteAVSDK_Player to 10.8.0.13065,tag:release_player_v10.0.8_stable
- set iOS TXLiteAVSDK_Player to 10.8.12025, tag:release_player_v10.0.8_stable
- set Android TXLiteAVSDK_Player to 11.9.0.14445,tag:release_player_v11.9.0
- set iOS TXLiteAVSDK_Player to 11.9.15963, tag:release_player_v11.9.0
- Android compatible with high version Gradle
- The location of the superPlayerWidget has changed, integrating superPlayer will no longer include the source code of the superPlayerWidget
- Android picture-in-picture feature logic optimization, compatible with more models
#### Version: 11.9.1 2024.06.05 #### Version: 10.8.0 2022.12.01
##### Features ##### 版本特性
- fix playback failed when in pip after recover from lock screen - set Android TXLiteAVSDK_Player to 10.8.0.13052,tag:release_player_v10.0.8
- TXVodPlayerController has introduced a new setStringOption interface for configuring extensions. - set iOS TXLiteAVSDK_Player to 10.8.12015, tag:release_player_v10.0.8
- The Flutter side's operation of the player can now affect the UI updates for playing and pausing in the picture-in-picture window.
- Fixed potential memory leak issues.
- Optimized the logic of superPlayer Widget
- Fixed other known issues.
#### Version: 12.0.0 2024.08.21
##### Features: #### Version: 1.0.7 2022.10.27
- set Android TXLiteAVSDK_Player to 12.0.0.14681,tag:release_player_v12.0.0 ##### 版本特性:
- set iOS TXLiteAVSDK_Player to 12.0.16292, tag:release_player_v12.0.0
- Live streaming replaces the new kernel.
- As the new kernel has been replaced, the live streaming live config currently only retains the properties of maxAutoAdjustCacheTime, minAutoAdjustCacheTime, connectRetryCount, and connectRetryInterval, with the rest of the parameters marked as deprecated.
- New interfaces have been added to live streaming: enableReceiveSeiMessage, showDebugView, setProperty, getSupportedBitrate, and setCacheParams.
- When playing live streaming, there is no longer a need to pass the playType parameter, which has been deprecated.
- The live streaming and on-demand demo pages have added logic to wait for the license to load successfully before playing.
- Other known issues have been fixed.
#### Version: 12.0.1 2024.09.14 - set Android TXLiteAVSDK_Player to 10.7.0.13053,tag:release_player_v1.0.7
- set iOS TXLiteAVSDK_Player to 10.7.11936, tag:release_player_v1.0.7
##### Features:
- set Android TXLiteAVSDK_Player to 12.0.0.14689,tag:release_player_v12.0.1 #### Version: 1.0.6 2022.09.19
- set iOS TXLiteAVSDK_Player to 12.0.16301, tag:release_player_v12.0.1
- Fix the issue where textures are not refreshed in some cases
- Fix the issue where updating Picture-in-Picture produces errors when Picture-in-Picture ends in some cases
- Modify the plugin callback Flutter side message architecture
- During SDK initialization, all modules are changed to lazy loading
- The demo and player components no longer need to force set the language; if not set, it defaults to English
#### Version: 12.1.0 2024.11.20 ##### 版本特性:
##### Features: - set Android TXLiteAVSDK_Player to 10.6.0.11182,tag:release_player_v1.0.6
- set iOS TXLiteAVSDK_Player to 10.6.11822, tag:release_player_v1.0.6
- set Android TXLiteAVSDK_Player to 12.1.0.14886,tag:release_player_v12.1.0
- set iOS TXLiteAVSDK_Player to 12.1.16597, tag:release_player_v12.1.0
- Fix the issue of reversed logic in the live streaming mute method.
- iOS adds support for Picture-in-Picture for live streaming, which requires premium permission to use.
- Fix other known issues.
#### Version: 12.2.0 2024.12.04 #### Version: 1.0.5 2022.09.02
##### Features ##### 版本特性
- set Android TXLiteAVSDK_Player to 12.2.0.15065,tag:release_player_v12.2.0 - set Android TXLiteAVSDK_Player to 10.5.0.11177,tag:release_player_v1.0.5
- set iOS TXLiteAVSDK_Player to 12.2.16945, tag:release_player_v12.2.0 - set iOS TXLiteAVSDK_Player to 10.5.11726, tag:release_player_v1.0.5
- Pre-download supports httpHeader
- Supports encrypted playback of MP4
- Added support for HEVC playback downgrade
- Fix other known issues.
#### Version: 12.2.1 2024.12.27
##### Features: #### Version: 1.0.4 2022.08.16
- set Android TXLiteAVSDK_Player to 12.2.0.15072,tag:release_player_v12.2.1 ##### 版本特性:
- set iOS TXLiteAVSDK_Player to 12.2.16956, tag:release_player_v12.2.1
- Fix the issue that picture-in-picture cannot be launched on some Android systems.
- Fix the issue of abnormal use after cold startup on some Android systems.
- Fix the issue that there is no subtitle callback without setting config on iOS.
- Fix the issue that there is no callback in some cases of downloading and pre-downloading.
- Add DRM playback API.
- Fix other known issues.
#### Version: 12.2.2 2024.12.30 - set Android TXLiteAVSDK_Player to 10.4.0.11164,tag:release_player_v1.0.4
- set iOS TXLiteAVSDK_Player to 10.4.11617, tag:release_player_v1.0.4
-
##### Features: #### Version: 1.0.3 2022.07.13
##### 版本特性:
- iOS端新增画中画(PIP) 功能
- set Android TXLiteAVSDK_Player to 10.3.0.11144,tag:release_player_v1.0.3
- set iOS TXLiteAVSDK_Player to 10.3.11513, tag:release_pro_v1.0.3
- Fix the issue where Android crashes when restoring from PIP.
\ No newline at end of file
...@@ -5,7 +5,7 @@ buildLog() { ...@@ -5,7 +5,7 @@ buildLog() {
} }
inputVersion=$1 inputVersion=$1
export VERSION_NAME="12.2.2" export VERSION_NAME="12.3.0"
if [ -n "$inputVersion" ]; then if [ -n "$inputVersion" ]; then
VERSION_NAME=$inputVersion VERSION_NAME=$inputVersion
fi fi
......
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
\ No newline at end of file
## Player SDK for Flutter Plugin ## Tencent Cloud Player SDK Flutter Plugin
English| [简体中文](./README.md) [Simplified Chinese](https://cloud.tencent.com/document/product/881/81252)| English
## Directory Structure ## Audience
This directory contains the demo source code of the Player SDK for Flutter plugin, which shows you how to call the APIs to implement basic features. Some content in this document pertains to exclusive capabilities of Tencent Cloud. Please activate the relevant services on [Tencent Cloud](https://cloud.tencent.com/) before use. Unregistered users can register for a [free trial](https://cloud.tencent.com/login).
``` ## **Upgrade Notes**
├── android // Demo source code of the Player for Android plugin
├── ios // Demo source code of the Player for iOS plugin Starting from version 10.1 of the Player SDK for mobile (Android & iOS & Flutter), the version is built using the same playback core as "Tencent Video," resulting in a comprehensive optimization and upgrade of video playback capabilities.
├── lib // Demo source code of the Player for Dart plugin
├── docs // Help documentation
├── superplayer_widget // Superplayer component
└── example // Demo code related to player
├── android // Demo source code for Android
├── ios // Demo source code for iOS
└── lib // Code samples for VOD and live players as well as Superplayer
```
## Branch Description Additionally, from this version onward, authorization verification for the "video playback" functional module will be added. **If your app already has a live streaming license or a short video license, you can continue to use it normally after upgrading to version 10.1,** and will not be affected by this change. You can log in to the [Tencent Cloud Vcube Console](https://console.cloud.tencent.com/vcube) to check your current license authorization information.
The Flutter player relies on the TXLiteAVSDK. This project provides 3 branches for integration based on business needs: If you have never obtained the aforementioned license authorization **and need to use the live playback or on-demand playback features in the new version SDK (10.1 and above), you will need to purchase a specified license for authorization.** For details, please refer to the [Authorization Instructions](https://cloud.tencent.com/document/product/881/74199#.E6.8E.88.E6.9D.83.E8.AF.B4.E6.98.8E); if you do not need to use the related features or have not upgraded to the latest version of the SDK, you will not be affected by this change.
[main](https://github.com/LiteAVSDK/Player_Flutter/tree/main): relies on the TXLiteAVSDK_Player SDK, which is the default branch. ## Project Directory Structure
[Professional](https://github.com/LiteAVSDK/Player_Flutter/tree/Professional): relies on the TXLiteAVSDK_Professional SDK. If the TXLiteAVSDK_Professional SDK has already been integrated into the project, this branch needs to be integrated. This directory contains the Tencent Cloud Player SDK Flutter plugin and demo source code, mainly demonstrating how to call interfaces and the most basic functionalities.
[Player_Premium](https://github.com/LiteAVSDK/Player_Flutter/tree/Player_Premium): relies on the TXLiteAVSDK_Player_Premium SDK, which includes value-added features such as external subtitles and multiple audio tracks, and is supported starting from version 11.7. ```
├── android // Player plugin Android source code
├── ios // Player plugin iOS source code
├── lib // Player plugin Dart source code
├── docs // Help documentation
├── superplayer_widget // Player component
└── example // Player-related demo code
├── android // Android demo source code
├── ios // iOS demo source code
└── lib // Examples of on-demand playback, live playback, and player component usage
```
## Project Overview ## Player Branch Explanation
The Player SDK is a subproduct of RT-Cube, which provides VOD and live players based on Tencent Cloud's powerful backend capabilities and AI technologies. It can be used together with VOD or CSS to quickly implement smooth and stable playback for various use cases. It allows you to focus on your business while delivering an ultra fast HD playback experience. The default pub dependency is the Professional version of the player. **If you need to depend on other versions,** you can directly rely on our open-source [GitHub repository](https://github.com/LiteAVSDK/Player_Flutter).
This project provides the VOD and live player SDKs which you can use to set up your own playback services. **Dependency method is as follows:**
- [VOD player SDK](https://github.com/LiteAVSDK/Player_Flutter/blob/main/Flutter/docs/%E7%82%B9%E6%92%AD%E6%92%AD%E6%94%BE-EN.md): `TXVodPlayerController` encapsulates the APIs of the VOD player SDKs for Android and iOS. You can integrate it to develop your VOD service. For the detailed code sample, see `DemoTXVodPlayer`. ```yaml
super_player:
git:
url: https://github.com/LiteAVSDK/Player_Flutter
path: Flutter
ref: Player_Premium
# You can specify the required version branch, commit, and release version through ref
```
- [Live player SDK](https://github.com/LiteAVSDK/Player_Flutter/blob/main/Flutter/docs/%E7%9B%B4%E6%92%AD%E6%92%AD%E6%94%BE-EN.md): `TXLivePlayerController` encapsulates the APIs of the live player SDKs for Android and iOS. You can integrate it to develop your live playback service. For the detailed code sample, see `DemoTXLivePlayer`. ### Branch Explanation
To reduce the connection costs, the Superplayer component (player with UIs) is provided in `example`. You can set up your own video playback service based on a few lines of simple code. You can apply the Superplayer code to your project and adjust UI and interaction details based on your project requirements. The Flutter player depends on TXLiteAVSDK. This project provides 3 branches; please integrate according to your business needs:
- [Superplayer component](https://github.com/LiteAVSDK/Player_Flutter/blob/main/Flutter/docs/%E6%92%AD%E6%94%BE%E5%99%A8%E7%BB%84%E4%BB%B6-EN.md): `SuperPlayerController` is the Superplayer component, which combines the VOD and live player SDKs. It is currently in beta testing, and its features are being optimized. For the detailed code sample, see `DemoSuperplayer`. [main](https://github.com/LiteAVSDK/Player_Flutter/tree/main): Depends on TXLiteAVSDK_Player SDK, the default branch.
## Intended Audience [Professional](https://github.com/LiteAVSDK/Player_Flutter/tree/Professional): Depends on TXLiteAVSDK_Professional SDK. If your project has already integrated TXLiteAVSDK_Professional SDK, you need to integrate this branch.
This document describes some of the capabilities of Tencent Cloud. Make sure that you have activated relevant [Tencent Cloud](https://cloud.tencent.com/) services before using them. If you haven't registered an account, please [sign up for free](https://cloud.tencent.com/login) first. [Player_Premium](https://github.com/LiteAVSDK/Player_Flutter/tree/Player_Premium): Depends on TXLiteAVSDK_Player_Premium SDK, which includes value-added features such as external subtitles and multiple audio tracks, supported from version 11.7 onwards.
## Upgrade Notes ## Introduction to Flutter Player
Player SDKs for Android, iOS, and Flutter 10.1 or later are developed based on the same playback kernel of Tencent Video with fully optimized and upgraded video playback capabilities. The Tencent Cloud Video Player SDK is one of the sub-product SDKs of the audio and video terminal SDK (Tencent Cloud Video). Leveraging Tencent Cloud's powerful backend capabilities and AI technology, it provides a robust platform for video on-demand and live streaming playback. When combined with Tencent Cloud's on-demand or live streaming services, users can quickly experience smooth and stable playback performance. It covers a wide range of application scenarios to meet diverse customer needs, allowing clients to focus easily on their business development while enjoying a new experience of ultra-fast and high-definition playback.
In addition, those SDKs require license verification for the video playback feature module. **If your app has already been granted the live push or UGSV license, you can still use the license after upgrading the SDK to 10.1 or later.** The license won't be affected by the upgrade. You can log in to the [RT-Cube console](https://console.cloud.tencent.com/vcube) to view the current license information. - [Integration Guide](https://www.tencentcloud.com/document/product/266/51192): The Tencent Cloud Video Player Flutter plugin is based on the on-demand and live streaming playback SDK, supporting both Android and iOS platforms.
If you don't have the necessary license and **need to use the live playback or VOD playback feature in the Player SDK 10.1 or later, you need to purchase the license.** For more information, see [here](https://cloud.tencent.com/document/product/881/74199#.E6.8E.88.E6.9D.83.E8.AF.B4.E6.98.8E). If you don't need to use those features or haven't upgraded the SDK to the latest version, you won't be affected by this change. This project provides both on-demand and live streaming playback, allowing you to build your own playback services based on the player:
## Custom Development Guide - [On-Demand Playback](https://www.tencentcloud.com/document/product/266/51748): `TXVodPlayerController` encapsulates the interface of the on-demand player SDK for both Android and iOS platforms. You can develop on-demand playback services by integrating `TXVodPlayerController`. For detailed usage examples, refer to `DemoTXVodPlayer`.
- [Live Streaming Playback](https://www.tencentcloud.com/document/product/266/64320): `TXLivePlayerController` encapsulates the interface of the live streaming player SDK for both Android and iOS platforms. You can develop live streaming services by integrating `TXLivePlayerController`. For detailed usage examples, refer to `DemoTXLivePlayer`.
- [Player API Documentation](https://www.tencentcloud.com/document/product/266/51191): This includes API usage instructions for player configuration, on-demand playback, and live streaming playback.
The Player SDK for Flutter plugin encapsulates native player capabilities. We recommend you use the following methods for deep custom development: To reduce integration costs, a player component (UI-enabled player) is provided in the example, allowing you to set up video playback services with just a few lines of code. You can apply the relevant code of the playback component to your project based on your needs and adjust the UI and interaction details as required.
- Perform custom development based on the VOD player SDK (the API class is `TXVodPlayerController`) or live player SDK (the API class is `TXLivePlayerController`). The project provides custom development demos in `DemoTXVodPlayer` and `DemoTXLivePlayer` in the `example` project. - [Player Component](https://www.tencentcloud.com/document/product/266/51193): The `SuperPlayerController` player component encapsulates both on-demand and live streaming functionalities, making it easy for you to integrate quickly and simply. For detailed usage examples, refer to `DemoSuperplayer`.
- The Superplayer component `SuperPlayerController` encapsulates the Player SDK and provides simple UI interaction. The code is in the `example` directory. You can customize the Superplayer component as follows: ## Deep Customization Development Guide
Copy the Superplayer component code in `example/lib/superplayer` to your project for custom development. The Tencent Cloud Player SDK Flutter plugin encapsulates the capabilities of the native player. If you wish to conduct deep customization development, it is recommended to use the following methods:
## References - For on-demand playback, use the interface class `TXVodPlayerController`, or for live streaming playback, use the interface class `TXLivePlayerController` for customization development. The project provides demo examples for customization development, which can be referenced in the example project’s `DemoTXVodPlayer` and `DemoTXLivePlayer`.
- [Player SDK](https://www.tencentcloud.com/zh/document/product/266/7836) - The player component `SuperPlayerController` encapsulates both on-demand and live streaming functionalities while providing simple UI interactions. Since this part of the code is in the example directory, if you have customization needs for the player component, you can do the following:
## Contact Us Import the relevant code of the player component, located in the directory: `Flutter/superplayer_widget`, into your project for customization development.
- Communication & Feedback ## Documentation Links
Welcome to join our Telegram Group to communicate with our professional engineers! We are more than happy to hear from you~
Click to join: [https://t.me/+EPk6TMZEZMM5OGY1](https://t.me/+EPk6TMZEZMM5OGY1)
Or scan the QR code
<img src="https://qcloudimg.tencent-cloud.cn/raw/79cbfd13877704ff6e17f30de09002dd.jpg" width="300px">
- [Player SDK Official Website](https://www.tencentcloud.com/document/product/266/7836)
\ No newline at end of file
## 腾讯云播放器SDK Flutter插件 ## 腾讯云播放器SDK Flutter插件
简体中文| [English](./README-EN.md) 简体中文| [English](https://www.tencentcloud.com/document/product/266/51192?lang=en&pg=)
## 阅读对象 ## 阅读对象
...@@ -30,7 +30,22 @@ ...@@ -30,7 +30,22 @@
└── lib // 点播播放、直播播放、播放器组件使用例子 └── lib // 点播播放、直播播放、播放器组件使用例子
``` ```
## 分支说明 ## 播放器分支说明
pub 依赖默认为 Professional 版本的播放器,**如果需要依赖其他版本**,可以直接依赖我们的开源 [Github 仓库](https://github.com/LiteAVSDK/Player_Flutter)
**依赖方式如下**
```yaml
super_player:
git:
url: https://github.com/LiteAVSDK/Player_Flutter
path: Flutter
ref: Player_Premium
# 可通过 ref 来指定需要的版本分支、提交和 release 版本
```
### 分支说明
Flutter 播放器依赖 TXLiteAVSDK,此工程提供 3 个分支,请根据业务需要进行集成: Flutter 播放器依赖 TXLiteAVSDK,此工程提供 3 个分支,请根据业务需要进行集成:
...@@ -44,20 +59,20 @@ Flutter 播放器依赖 TXLiteAVSDK,此工程提供 3 个分支,请根据业 ...@@ -44,20 +59,20 @@ Flutter 播放器依赖 TXLiteAVSDK,此工程提供 3 个分支,请根据业
腾讯云视立方·播放器 SDK 是音视频终端 SDK(腾讯云视立方)的子产品 SDK 之一,基于腾讯云强大的后台能力与 AI 技术,提供视频点播和直播播放能力的强大播放载体。结合腾讯云点播或云直播使用,可以快速体验流畅稳定的播放性能。充分覆盖多类应用场景,满足客户多样需求,让客户轻松聚焦于业务发展本身,畅享极速高清播放新体验。 腾讯云视立方·播放器 SDK 是音视频终端 SDK(腾讯云视立方)的子产品 SDK 之一,基于腾讯云强大的后台能力与 AI 技术,提供视频点播和直播播放能力的强大播放载体。结合腾讯云点播或云直播使用,可以快速体验流畅稳定的播放性能。充分覆盖多类应用场景,满足客户多样需求,让客户轻松聚焦于业务发展本身,畅享极速高清播放新体验。
- [集成指引](./docs/集成指引.md):腾讯云视立方 Flutter 播放器是基于点播和直播播放SDK的一个 Flutter 插件,同时支持 Android 和 iOS 两个平台。 - [集成指引](https://cloud.tencent.com/document/product/881/81252):腾讯云视立方 Flutter 播放器是基于点播和直播播放SDK的一个 Flutter 插件,同时支持 Android 和 iOS 两个平台。
此项目提供了点播播放和直播播放,您可以基于播放器搭建自己的播放业务: 此项目提供了点播播放和直播播放,您可以基于播放器搭建自己的播放业务:
- [点播播放](https://github.com/LiteAVSDK/Player_Flutter/blob/main/Flutter/docs/%E7%82%B9%E6%92%AD%E6%92%AD%E6%94%BE.md)`TXVodPlayerController`对Android和iOS两个平台的点播播放器SDK进行接口封装, 你可以通过集成`TXVodPlayerController`进行点播播放业务开发。详细使用例子可以参考`DemoTXVodPlayer` - [点播播放](https://cloud.tencent.com/document/product/881/81253)`TXVodPlayerController`对Android和iOS两个平台的点播播放器SDK进行接口封装, 你可以通过集成`TXVodPlayerController`进行点播播放业务开发。详细使用例子可以参考`DemoTXVodPlayer`
- [直播播放](https://github.com/LiteAVSDK/Player_Flutter/blob/main/Flutter/docs/%E7%9B%B4%E6%92%AD%E6%92%AD%E6%94%BE.md)`TXLivePlayerController`对Android和iOS两个平台的直播播放器SDK进行接口封装, 你可以通过集成`TXLivePlayerController`进行直播播放业务开发。详细使用例子可以参考`DemoTXLivePlayer` - [直播播放](https://cloud.tencent.com/document/product/881/81254)`TXLivePlayerController`对Android和iOS两个平台的直播播放器SDK进行接口封装, 你可以通过集成`TXLivePlayerController`进行直播播放业务开发。详细使用例子可以参考`DemoTXLivePlayer`
- [播放器API文档](./docs/API文档.md):包含播放器配置、点播播放和直播播放等API使用说明。 - [播放器API文档](https://cloud.tencent.com/document/product/881/81255):包含播放器配置、点播播放和直播播放等API使用说明。
为了减少接入成本, 在example里提供了播放器组件(带UI的播放器),基于播放器组件简单的几行代码就可以搭建视频播放业务。您可以根据自己项目的需求, 把播放组件的相关代码应用到项目中去,根据需求进行调整UI和交互细节。 为了减少接入成本, 在example里提供了播放器组件(带UI的播放器),基于播放器组件简单的几行代码就可以搭建视频播放业务。您可以根据自己项目的需求, 把播放组件的相关代码应用到项目中去,根据需求进行调整UI和交互细节。
- [播放器组件](https://github.com/LiteAVSDK/Player_Flutter/blob/main/Flutter/docs/%E6%92%AD%E6%94%BE%E5%99%A8%E7%BB%84%E4%BB%B6.md)`SuperPlayerController` 播放器组件,对点播和直播进行了二次封装,可以方便你快速简单集成。目前是Beta版本,功能还在完善中。详细使用例子可以参考`DemoSuperplayer` - [播放器组件](https://cloud.tencent.com/document/product/881/81250)`SuperPlayerController` 播放器组件,对点播和直播进行了二次封装,可以方便你快速简单集成。详细使用例子可以参考`DemoSuperplayer`
## 深度定制开发指引 ## 深度定制开发指引
腾讯云播放器SDK Flutter插件对原生播放器能力进行了封装, 如果您要进行深度定制开发,建议采用如下方法: 腾讯云播放器SDK Flutter插件对原生播放器能力进行了封装, 如果您要进行深度定制开发,建议采用如下方法:
......
...@@ -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.2.2' playerVersion = '12.3.0'
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.2.0.15072" liteavSdk="com.tencent.liteav:LiteAVSDK_Player:12.3.0.17115"
} }
\ No newline at end of file
...@@ -72,7 +72,8 @@ public class EGL14Helper implements EGLHelper<EGLContext> { ...@@ -72,7 +72,8 @@ public class EGL14Helper implements EGLHelper<EGLContext> {
LiteavLog.d(TAG, "NOTE: makeCurrent w/o display"); LiteavLog.d(TAG, "NOTE: makeCurrent w/o display");
} }
if (!EGL14.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) { if (!EGL14.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
throw new RuntimeException("eglMakeCurrent failed"); checkEGLError();
LiteavLog.e(TAG, "eglMakeCurrent failed");
} }
} }
...@@ -104,13 +105,15 @@ public class EGL14Helper implements EGLHelper<EGLContext> { ...@@ -104,13 +105,15 @@ public class EGL14Helper implements EGLHelper<EGLContext> {
private boolean initialize(EGLConfig config, EGLContext context, Surface surface) { private boolean initialize(EGLConfig config, EGLContext context, Surface surface) {
mEGLDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY); mEGLDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
if (mEGLDisplay == EGL14.EGL_NO_DISPLAY) { if (mEGLDisplay == EGL14.EGL_NO_DISPLAY) {
throw new RuntimeException("unable to get EGL14 display"); checkEGLError();
LiteavLog.i(TAG, "unable to get EGL14 display");
} }
int[] version = new int[2]; int[] version = new int[2];
if (!EGL14.eglInitialize(mEGLDisplay, version, 0, version, 1)) { if (!EGL14.eglInitialize(mEGLDisplay, version, 0, version, 1)) {
mEGLDisplay = null; mEGLDisplay = null;
throw new RuntimeException("unable to initialize EGL14"); checkEGLError();
LiteavLog.i(TAG, "unable to initialize EGL14");
} }
if (config != null) { if (config != null) {
...@@ -183,8 +186,7 @@ public class EGL14Helper implements EGLHelper<EGLContext> { ...@@ -183,8 +186,7 @@ public class EGL14Helper implements EGLHelper<EGLContext> {
private void checkEGLError() { private void checkEGLError() {
int ec = EGL14.eglGetError(); int ec = EGL14.eglGetError();
if (ec != EGL14.EGL_SUCCESS) { if (ec != EGL14.EGL_SUCCESS) {
LiteavLog.e(TAG, "EGL error:" + ec); LiteavLog.e(TAG, "EGL error:" + ec + ", code: 0x" + Integer.toHexString(ec));
throw new RuntimeException(": EGL error: 0x" + Integer.toHexString(ec));
} }
} }
} }
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true' ENV['COCOAPODS_DISABLE_STATS'] = 'true'
platform :ios, '12.0'
project 'Runner', { project 'Runner', {
'Debug' => :debug, 'Debug' => :debug,
......
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
\ No newline at end of file
...@@ -4,20 +4,20 @@ ...@@ -4,20 +4,20 @@
# #
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = 'super_player' s.name = 'super_player'
s.version = '12.2.2' s.version = '12.3.0'
s.summary = 'player plugin.' s.summary = 'player plugin.'
s.description = <<-DESC s.description = <<-DESC
player plugin. player plugin.
DESC DESC
s.homepage = 'http://example.com' s.homepage = 'http://example.com'
s.license = { :file => '../LICENSE' } s.license = { :file => './LICENSE' }
s.author = { 'Your Company' => 'email@example.com' } s.author = { 'Your Company' => 'email@example.com' }
s.source = { :path => '.' } s.source = { :path => '.' }
s.source_files = 'Classes/**/*' s.source_files = 'Classes/**/*'
s.public_header_files = 'Classes/**/*.h' s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter' s.dependency 'Flutter'
s.ios.framework = ['MobileCoreServices'] s.ios.framework = ['MobileCoreServices']
s.platform = :ios, '9.0' s.platform = :ios, '12.0'
s.static_framework = true s.static_framework = true
s.resources = ['Classes/TXResource/**/*'] s.resources = ['Classes/TXResource/**/*']
...@@ -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.2.16956' s.dependency 'TXLiteAVSDK_Player','12.3.16995'
# Flutter.framework does not contain a i386 slice. # Flutter.framework does not contain a i386 slice.
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
......
...@@ -62,12 +62,6 @@ class BoolPlayerMsg { ...@@ -62,12 +62,6 @@ class BoolPlayerMsg {
bool? value; bool? value;
} }
class StringIntPlayerMsg {
int? playerId;
String? strValue;
int? intValue;
}
class StringPlayerMsg { class StringPlayerMsg {
int? playerId; int? playerId;
String? value; String? value;
......
name: super_player name: super_player
description: player plugin. description: player plugin.
version: 12.2.2 version: 12.3.0
author: homepage: https://github.com/LiteAVSDK/Player_Flutter
homepage:
environment: environment:
sdk: '>=2.17.0 <4.0.0' sdk: '>=2.17.0 <4.0.0'
......
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
\ No newline at end of file
English| [简体中文](./README.md) ## Tencent Cloud Player SDK Flutter Plugin
#### Composition of Player SDK for Flutter plugin [Simplified Chinese](https://cloud.tencent.com/document/product/881/81252)| English
- VOD player SDK ## Audience
- Live player SDK
- Superplayer component Some content in this document pertains to exclusive capabilities of Tencent Cloud. Please activate the relevant services on [Tencent Cloud](https://cloud.tencent.com/) before use. Unregistered users can register for a [free trial](https://cloud.tencent.com/login).
\ No newline at end of file
## **Upgrade Notes**
Starting from version 10.1 of the Player SDK for mobile (Android & iOS & Flutter), the version is built using the same playback core as "Tencent Video," resulting in a comprehensive optimization and upgrade of video playback capabilities.
Additionally, from this version onward, authorization verification for the "video playback" functional module will be added. **If your app already has a live streaming license or a short video license, you can continue to use it normally after upgrading to version 10.1,** and will not be affected by this change. You can log in to the [Tencent Cloud Vcube Console](https://console.cloud.tencent.com/vcube) to check your current license authorization information.
If you have never obtained the aforementioned license authorization **and need to use the live playback or on-demand playback features in the new version SDK (10.1 and above), you will need to purchase a specified license for authorization.** For details, please refer to the [Authorization Instructions](https://cloud.tencent.com/document/product/881/74199#.E6.8E.88.E6.9D.83.E8.AF.B4.E6.98.8E); if you do not need to use the related features or have not upgraded to the latest version of the SDK, you will not be affected by this change.
## Project Directory Structure
This directory contains the Tencent Cloud Player SDK Flutter plugin and demo source code, mainly demonstrating how to call interfaces and the most basic functionalities.
```
├── android // Player plugin Android source code
├── ios // Player plugin iOS source code
├── lib // Player plugin Dart source code
├── docs // Help documentation
├── superplayer_widget // Player component
└── example // Player-related demo code
├── android // Android demo source code
├── ios // iOS demo source code
└── lib // Examples of on-demand playback, live playback, and player component usage
```
## Player Branch Explanation
The default pub dependency is the Professional version of the player. **If you need to depend on other versions,** you can directly rely on our open-source [GitHub repository](https://github.com/LiteAVSDK/Player_Flutter).
**Dependency method is as follows:**
```yaml
super_player:
git:
url: https://github.com/LiteAVSDK/Player_Flutter
path: Flutter
ref: Player_Premium
# You can specify the required version branch, commit, and release version through ref
```
### Branch Explanation
The Flutter player depends on TXLiteAVSDK. This project provides 3 branches; please integrate according to your business needs:
[main](https://github.com/LiteAVSDK/Player_Flutter/tree/main): Depends on TXLiteAVSDK_Player SDK, the default branch.
[Professional](https://github.com/LiteAVSDK/Player_Flutter/tree/Professional): Depends on TXLiteAVSDK_Professional SDK. If your project has already integrated TXLiteAVSDK_Professional SDK, you need to integrate this branch.
[Player_Premium](https://github.com/LiteAVSDK/Player_Flutter/tree/Player_Premium): Depends on TXLiteAVSDK_Player_Premium SDK, which includes value-added features such as external subtitles and multiple audio tracks, supported from version 11.7 onwards.
## Introduction to Flutter Player
The Tencent Cloud Video Player SDK is one of the sub-product SDKs of the audio and video terminal SDK (Tencent Cloud Video). Leveraging Tencent Cloud's powerful backend capabilities and AI technology, it provides a robust platform for video on-demand and live streaming playback. When combined with Tencent Cloud's on-demand or live streaming services, users can quickly experience smooth and stable playback performance. It covers a wide range of application scenarios to meet diverse customer needs, allowing clients to focus easily on their business development while enjoying a new experience of ultra-fast and high-definition playback.
- [Integration Guide](https://www.tencentcloud.com/document/product/266/51192): The Tencent Cloud Video Player Flutter plugin is based on the on-demand and live streaming playback SDK, supporting both Android and iOS platforms.
This project provides both on-demand and live streaming playback, allowing you to build your own playback services based on the player:
- [On-Demand Playback](https://www.tencentcloud.com/document/product/266/51748): `TXVodPlayerController` encapsulates the interface of the on-demand player SDK for both Android and iOS platforms. You can develop on-demand playback services by integrating `TXVodPlayerController`. For detailed usage examples, refer to `DemoTXVodPlayer`.
- [Live Streaming Playback](https://www.tencentcloud.com/document/product/266/64320): `TXLivePlayerController` encapsulates the interface of the live streaming player SDK for both Android and iOS platforms. You can develop live streaming services by integrating `TXLivePlayerController`. For detailed usage examples, refer to `DemoTXLivePlayer`.
- [Player API Documentation](https://www.tencentcloud.com/document/product/266/51191): This includes API usage instructions for player configuration, on-demand playback, and live streaming playback.
To reduce integration costs, a player component (UI-enabled player) is provided in the example, allowing you to set up video playback services with just a few lines of code. You can apply the relevant code of the playback component to your project based on your needs and adjust the UI and interaction details as required.
- [Player Component](https://www.tencentcloud.com/document/product/266/51193): The `SuperPlayerController` player component encapsulates both on-demand and live streaming functionalities, making it easy for you to integrate quickly and simply. For detailed usage examples, refer to `DemoSuperplayer`.
## Deep Customization Development Guide
The Tencent Cloud Player SDK Flutter plugin encapsulates the capabilities of the native player. If you wish to conduct deep customization development, it is recommended to use the following methods:
- For on-demand playback, use the interface class `TXVodPlayerController`, or for live streaming playback, use the interface class `TXLivePlayerController` for customization development. The project provides demo examples for customization development, which can be referenced in the example project’s `DemoTXVodPlayer` and `DemoTXLivePlayer`.
- The player component `SuperPlayerController` encapsulates both on-demand and live streaming functionalities while providing simple UI interactions. Since this part of the code is in the example directory, if you have customization needs for the player component, you can do the following:
Import the relevant code of the player component, located in the directory: `Flutter/superplayer_widget`, into your project for customization development.
## Documentation Links
- [Player SDK Official Website](https://www.tencentcloud.com/document/product/266/7836)
\ No newline at end of file
简体中文| [English](./README-EN.md) ## 腾讯云播放器SDK Flutter插件
#### 腾讯云播放器SDK Flutter插件,包括: 简体中文| [English](https://www.tencentcloud.com/document/product/266/51192?lang=en&pg=)
- 点播播放器 SDK ## 阅读对象
- 直播播放器 SDK
- 播放器组件
本文档部分内容为腾讯云专属能力,使用前请开通 [腾讯云](https://cloud.tencent.com/) 相关服务,未注册用户可注册账号 [免费试用](https://cloud.tencent.com/login)
## **升级说明**
播放器 SDK 移动端10.1(Android & iOS & Flutter)开始 版本采用“腾讯视频”同款播放内核打造,视频播放能力获得全面优化升级。
同时从该版本开始将增加对“视频播放”功能模块的授权校验,**如果您的APP已经拥有直播推流 License 或者短视频 License 授权,当您升级至10.1 版本后仍可以继续正常使用,**不受到此次变更影响,您可以登录 [腾讯云视立方控制台](https://console.cloud.tencent.com/vcube) 查看您当前的 License 授权信息。
如果您在此之前从未获得过上述License授权**,且需要使用新版本SDK(10.1及其更高版本)中的直播播放或点播播放功能,则需购买指定 License 获得授权**,详情参见[授权说明](https://cloud.tencent.com/document/product/881/74199#.E6.8E.88.E6.9D.83.E8.AF.B4.E6.98.8E);若您无需使用相关功能或未升级至最新版本SDK,将不受到此次变更的影响。
## 工程目录结构说明
本目录包含腾讯云播放器SDK Flutter 插件 和 Demo 源代码,主要演示接口如何调用以及最基本的功能。
```
├── android // 播放器插件android源代码
├── ios // 播放器插件iOS源代码
├── lib // 播放器插件dart源代码
├── docs // 帮助文档
├── superplayer_widget // 播放器组件
└── example // 播放器相关demo代码
├── android // android的demo源代码
├── ios // iOS的demo源代码
└── lib // 点播播放、直播播放、播放器组件使用例子
```
## 播放器分支说明
pub 依赖默认为 Professional 版本的播放器,**如果需要依赖其他版本**,可以直接依赖我们的开源 [Github 仓库](https://github.com/LiteAVSDK/Player_Flutter)
**依赖方式如下**
```yaml
super_player:
git:
url: https://github.com/LiteAVSDK/Player_Flutter
path: Flutter
ref: Player_Premium
# 可通过 ref 来指定需要的版本分支、提交和 release 版本
```
### 分支说明
Flutter 播放器依赖 TXLiteAVSDK,此工程提供 3 个分支,请根据业务需要进行集成:
[main](https://github.com/LiteAVSDK/Player_Flutter/tree/main):依赖 TXLiteAVSDK_Player SDK,默认分支。
[Professional](https://github.com/LiteAVSDK/Player_Flutter/tree/Professional):依赖 TXLiteAVSDK_Professional SDK,如果项目中已经集成 TXLiteAVSDK_Professional SDK ,则需要集成此分支。
[Player_Premium](https://github.com/LiteAVSDK/Player_Flutter/tree/Player_Premium): 依赖 TXLiteAVSDK_Player_Premium SDK,包含外挂字幕、多音轨等增值功能,从 11.7 版本开始支持。
## Flutter播放器简介
腾讯云视立方·播放器 SDK 是音视频终端 SDK(腾讯云视立方)的子产品 SDK 之一,基于腾讯云强大的后台能力与 AI 技术,提供视频点播和直播播放能力的强大播放载体。结合腾讯云点播或云直播使用,可以快速体验流畅稳定的播放性能。充分覆盖多类应用场景,满足客户多样需求,让客户轻松聚焦于业务发展本身,畅享极速高清播放新体验。
- [集成指引](https://cloud.tencent.com/document/product/881/81252):腾讯云视立方 Flutter 播放器是基于点播和直播播放SDK的一个 Flutter 插件,同时支持 Android 和 iOS 两个平台。
此项目提供了点播播放和直播播放,您可以基于播放器搭建自己的播放业务:
- [点播播放](https://cloud.tencent.com/document/product/881/81253)`TXVodPlayerController`对Android和iOS两个平台的点播播放器SDK进行接口封装, 你可以通过集成`TXVodPlayerController`进行点播播放业务开发。详细使用例子可以参考`DemoTXVodPlayer`
- [直播播放](https://cloud.tencent.com/document/product/881/81254)`TXLivePlayerController`对Android和iOS两个平台的直播播放器SDK进行接口封装, 你可以通过集成`TXLivePlayerController`进行直播播放业务开发。详细使用例子可以参考`DemoTXLivePlayer`
- [播放器API文档](https://cloud.tencent.com/document/product/881/81255):包含播放器配置、点播播放和直播播放等API使用说明。
为了减少接入成本, 在example里提供了播放器组件(带UI的播放器),基于播放器组件简单的几行代码就可以搭建视频播放业务。您可以根据自己项目的需求, 把播放组件的相关代码应用到项目中去,根据需求进行调整UI和交互细节。
- [播放器组件](https://cloud.tencent.com/document/product/881/81250)`SuperPlayerController` 播放器组件,对点播和直播进行了二次封装,可以方便你快速简单集成。详细使用例子可以参考`DemoSuperplayer`
## 深度定制开发指引
腾讯云播放器SDK Flutter插件对原生播放器能力进行了封装, 如果您要进行深度定制开发,建议采用如下方法:
- 基于点播播放,接口类为`TXVodPlayerController` 或直播播放,接口类为`TXLivePlayerController`,进行定制开发,项目中提供了定制开发Demo,可参考example工程里的`DemoTXVodPlayer``DemoTXLivePlayer`
- 播放器组件`SuperPlayerController` 对点播和直播进行了封装,同时提供了简单的UI交互, 由于此部分代码在example目录。如果您有对播放器组件定制化的需求,您可以进行如下操作:
把播放器组件相关的代码,代码目录:`Flutter/superplayer_widget`,导入到您的项目中,进行定制化开发。
## 文档链接
- [播放器SDK官网](https://cloud.tencent.com/document/product/881)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论