博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视频点播播放器如何实现加密下载?
阅读量:6910 次
发布时间:2019-06-27

本文共 2844 字,大约阅读时间需要 9 分钟。

1、概述

目前视频下载实现可使用播放器接口实现.下载实现能够加密安全下载.本文档演示如何添加一个下载项且完成下载流程.

2、下载实现流程

1.初始化下载管理类,配置下载加密密钥和保存路径。

AliyunDownloadConfig config = new AliyunDownloadConfig();设置安全图片,安全图片获取见另外一个文档:https://help.aliyun.com/document_detail/57920.html?spm=5176.doc51789.6.666.TQxC07config.setSecretImagePath(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DingTalk/encryptedApp.dat");//设置保存路径。请确保有SD卡访问权限。config.setDownloadDir(Environment.getExternalStorageDirectory().getAbsolutePath() + "/test_save");//设置同时下载个数config.setMaxNums(2);AliyunDownloadManager.getInstance(this).setDownloadConfig(config);

2.准备下载

//(1)获取下载实例downloadManager = AliyunDownloadManager.getInstance(this);//(2)添加下载监听downloadManager.addDownloadInfoListener(downloadInfoListener);//(3)组装下载需要的视频信息并且调用prepareDoawloadMedia.如下的参数如何获取见:https://help.aliyun.com/document_detail/57916.html?spm=5176.7757620.6.666.4hd5uhAliyunDataSource.AliyunDataSourceBuilder adb = new AliyunDataSource.    AliyunDataSourceBuilder(this);       if (adb == null) return;       adb.setAccessKeyId(akiStr);       adb.setAccessKeySecret(aksStr);       adb.setPlayKey(playKeyStr);       adb.setVideoId(vidStr);downloadManager.prepareDownloadMedia(adb.build());

3.调用准备下载之后,如信息没有异常会收到准备成功的回调.在准备成功的回调里面调用开始下载

@Override        public void onPrepared(List
list) { //第二步 ; 准备完成 Log.d("AliyunDownload","onPrepared"); AliyunDataSource.AliyunDataSourceBuilder adb = getAliyunDataSourceBuilder(); adb.setFormat(list.get(0).getFormat()); adb.setQuality(list.get(1).getQuality()); //返回值为0则为开始下载成功. downloadManager.startDownloadMedia(adb.build()); }

4.如无异常将会开始下载,走onProgress的回调.成功会走onCompletion的回调.

private AliyunDownloadInfoListener downloadInfoListener = new AliyunDownloadInfoListener() {        @Override        public void onPrepared(List
list) { //准备完成 } @Override public void onStart(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) { //开始下载 } @Override public void onProgress(AliyunDownloadMediaInfo aliyunDownloadMediaInfo, int i) { //开始下载进度 } @Override public void onStop(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) { //停止下载 } @Override public void onCompletion(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) { //下载成功 } @Override public void onError(AliyunDownloadMediaInfo aliyunDownloadMediaInfo, int i, String s) { //下载出错 } @Override public void onWait(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) { //等待下载 } @Override public void onM3u8IndexUpdate(AliyunDownloadMediaInfo outMediaInfo, int index) { //m3u8更新 } };

本文为 系列文章之一,如果本文还不能解决你的问题可以在汇总合集中查看,有任何问题也欢迎回复,谢谢.

转载地址:http://zvbcl.baihongyu.com/

你可能感兴趣的文章
Laravel 5.5 Blade::if 简介
查看>>
centos7搭建ELK Cluster集群日志分析平台(三):Kibana
查看>>
UITextField 监听内容变更解决方案
查看>>
详解jar命令打包生成双击即可运行的Java程序
查看>>
SAMBA 与ISCSI区别
查看>>
zabbix 历史数据清理及libdata1文件过大处理
查看>>
HTML5 学习手笔二:canvas API 绘制树形图案A
查看>>
socket通信中select函数的使用和解释
查看>>
MySQL order by后对其他索引的干扰,导致优化器走错索引
查看>>
大学生IT博客大赛技术50强获奖图书
查看>>
学习OpenGL
查看>>
C Primer Plus 第四章 编程练习
查看>>
httpd-2.4源码编译安装
查看>>
鼠标选中一段文字变成C的解决
查看>>
linux杀毒软件clamav安装与使用
查看>>
html中div的换行
查看>>
Merge Sorted Array
查看>>
删除数据库中重复项
查看>>
2.2-shell数组
查看>>
extjs 手风琴布局样式修改
查看>>