视频点播播放器如何实现加密下载?-阿里云开发者社区

开发者社区> 阿里云CDN> 正文
登录阅读全文

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

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

1、概述

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

2、下载实现流程

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

AliyunDownloadConfig config = new AliyunDownloadConfig();
////设置安全图片,安全图片获取见另外一个文档:https://help.aliyun.com/document_detail/57920.html?spm=5176.doc51789.6.666.TQxC07
config.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.4hd5uh
AliyunDataSource.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<AliyunDownloadMediaInfo> 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<AliyunDownloadMediaInfo> 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更新
        }
    };

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

关注阿里云Edge Plus官方微信公众号,分享CDN技术、解读视频应用、获取新品资讯

官方博客
官网链接