閱讀697 返回首頁    go 阿裏雲 go 技術社區[雲棲]


視頻點播播放器如何實現加密下載?

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);
        adb.setAccessKeyId(akiStr);
        adb.setAccessKeySecret(aksStr);
        adb.setPlayKey(playKeyStr);
        adb.setVideoId(vidStr);
        if (adb == null) return;
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更新
        }
    };

最後更新:2017-08-25 11:32:20

  上一篇:go  點播和播放器下載需要的參數的區別(VideoId、AccessKeyId、AccessKeySecret、playKey、playauth)
  下一篇:go  關於安卓指令集的兼容