視頻點播播放器如何實現加密下載?
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