阿里云
社区时光机
发表主题 回复主题
  • 131阅读
  • 0回复

[点播]视频点播播放器如何实现加密下载?

级别: 论坛版主
发帖
82
云币
191

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


2、下载实现流程
1.初始化下载管理类,配置下载加密密钥和保存路径。


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



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



3.调用准备下载之后,如信息没有异常会收到准备成功的回调.在准备成功的回调里面调用开始下载
  1.         @Override
  2.         public void onPrepared(List<AliyunDownloadMediaInfo> list) {
  3.             //第二步 ; 准备完成
  4.             Log.d("AliyunDownload","onPrepared");
  5.             AliyunDataSource.AliyunDataSourceBuilder adb = getAliyunDataSourceBuilder();
  6.             adb.setFormat(list.get(0).getFormat());
  7.             adb.setQuality(list.get(1).getQuality());
  8.             //返回值为0则为开始下载成功.
  9.             downloadManager.startDownloadMedia(adb.build());
  10.         }



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


  1. private AliyunDownloadInfoListener downloadInfoListener = new AliyunDownloadInfoListener() {
  2.         @Override
  3.         public void onPrepared(List<AliyunDownloadMediaInfo> list) {
  4.           //准备完成
  5.         }
  6.         @Override
  7.         public void onStart(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) {
  8.           //开始下载
  9.         }
  10.         @Override
  11.         public void onProgress(AliyunDownloadMediaInfo aliyunDownloadMediaInfo, int i) {
  12.           //开始下载进度
  13.         }
  14.         @Override
  15.         public void onStop(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) {
  16.           //停止下载
  17.         }
  18.         @Override
  19.         public void onCompletion(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) {
  20.           //下载成功
  21.         }
  22.         @Override
  23.         public void onError(AliyunDownloadMediaInfo aliyunDownloadMediaInfo, int i, String s) {
  24.           //下载出错
  25.         }
  26.         @Override
  27.         public void onWait(AliyunDownloadMediaInfo aliyunDownloadMediaInfo) {
  28.           //等待下载
  29.         }
  30.         @Override
  31.         public void onM3u8IndexUpdate(AliyunDownloadMediaInfo outMediaInfo, int index) {
  32.          //m3u8更新
  33.         }
  34.     };



本文为【问答合集】阿里视频云常见技术问题汇总——内含技术文档40+ 持续更新中 系列文章之一,如果本文还不能解决你的问题可以在汇总合集中查看,有任何问题也欢迎回复,谢谢!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个