Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
tx_player_fork
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蒋俊
tx_player_fork
Commits
3cf55d9e
提交
3cf55d9e
authored
2月 03, 2023
作者:
kongdywang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add download video play docs content
上级
b6a9e14f
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
37 行增加
和
2 行删除
+37
-2
点播播放.md
Flutter/docs/点播播放.md
+37
-2
没有找到文件。
Flutter/docs/点播播放.md
浏览文件 @
3cf55d9e
...
...
@@ -513,7 +513,6 @@ TXVodDownloadController.instance.startDonwload(medialnfo);
</dx-tabs>
[
](id:offline3)
#### 步骤3:任务信息
...
...
@@ -547,20 +546,35 @@ TXVodDownloadController.instance.setDownloadObserver((event, info) {
停止下载请调用
`TXVodDownloadController.instance.stopDownload()`
方法,参数为开始下载传入的
`TXVodDownloadMedialnfo`
对象。
**SDK 支持断点续传**
,当下载目录没有发生改变时,下次下载同一个文件时会从上次停止的地方重新开始。
[
](id:offline5)
#### 步骤5:管理下载
获取所有用户账户的下载列表信息, 也可获取指定用户账户的下载列表信息。
```
dart
// 获取所有用户的下载列表信息
//
接入方可根据下载信息中的userName
区分不同用户的下载列表信息
//
可根据下载信息中的 userName
区分不同用户的下载列表信息
List
<
TXVodDownloadMedialnfo
>
downloadInfoList
=
await
TXVodDownloadController
.
instance
.
getDownloadList
();
// 获取默认“default”用户已经下载完成的视频
List
<
TXVodDownloadMedialnfo
>
defaultUserDownloadList
=
[];
for
(
TXVodDownloadMedialnfo
mediaInfo
in
downloadInfoList
)
{
if
(
"default"
==
mediaInfo
.
userName
&&
mediaInfo
.
downloadState
==
TXVodPlayEvent
.
EVENT_DOWNLOAD_FINISH
)
{
defaultUserDownloadList
.
add
(
mediaInfo
);
}
}
```
获取某个 Fileid 相关下载信息,包括当前下载状态,获取当前下载进度,判断是否下载完成等,需要传入 AppID、 Fileid 和 qualityId。
```
dart
// 获取某个视频相关下载信息
TXVodDownloadMedialnfo
medialnfo
=
TXVodDownloadMedialnfo
();
medialnfo
.
dataSource
=
TXVodDownloadDataSource
();
medialnfo
.
dataSource
!.
appId
=
1500005830
;
medialnfo
.
dataSource
!.
fileId
=
"8602268011437356984"
;
// fileId下载必须传入quality。quality也可以通过CommonUtils.getDownloadQualityBySize(width, height)来获取
medialnfo
.
dataSource
!.
quality
=
DownloadQuality
.
QUALITY_HD
;
TXVodDownloadMedialnfo
downloadInfo
=
await
TXVodDownloadController
.
instance
.
getDownloadInfo
(
medialnfo
);
int
?
duration
=
downloadInfo
.
duration
;
// 获取总时长
int
?
playableDuration
=
downloadInfo
.
playableDuration
;
// 获取已下载的可播放时长
...
...
@@ -569,11 +583,32 @@ String? playPath = downloadInfo.playPath; // 获取离线播放路径,传给
int
?
downloadState
=
downloadInfo
.
downloadState
;
// 获取下载状态,具体参考STATE_xxx常量
```
获取某个 URL 相关下载信息,需要传入 URL 信息。目前url下载不支持嵌套m3u8和mp4下载。
```
dart
TXVodDownloadMedialnfo
medialnfo
=
TXVodDownloadMedialnfo
();
medialnfo
.
url
=
"http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8"
;
TXVodDownloadController
.
instance
.
getDownloadInfo
(
medialnfo
);
```
```
dart
// 删除下载信息
bool
result
=
await
TXVodDownloadController
.
instance
.
deleteDownloadMediaInfo
(
medialnfo
);
```
[
](id:offline6)
#### 步骤6: 播放离线视频
通过以上步骤获取到的mediaInfo的downloadState为EVENT_DOWNLOAD_FINISH,并且mediaInfo的playPath有值,则代表获取视频缓存完成,可以直接传给controller进行播放,代码如下:
```
dart
String
cacheVideoUrl
=
cacheMediaInfo
.
playPath
!;
vodPlayerController
.
startVodPlay
(
cacheVideoUrl
);
```
### 4、加密播放
视频加密方案主要用于在线教育等需要对视频版权进行保护的场景。如果要对您的视频资源进行加密保护,就不仅需要在播放器上做改造,还需要对视频源本身进行加密转码,亦需要您的后台和终端研发工程师都参与其中。在
[
视频加密解决方案
](
https://cloud.tencent.com/document/product/266/45552
)
中您会了解到全部细节内容。
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论