快速开始
更新时间:2024-12-27
初始化 SDK
Plain Text
1 string mediaURL = "http://XXX:8191/medias/upload"; //申请上传服务接口URL
2 string completeURL = "http://XXX:8191/medias/upload_done"; //确认上传服务接口地址
3 VodUpload VodUpload = new VodUpload(mediaURL,completeURL);
说明:
1、申请上传服务接口URL、确认上传服务接口地址为请求VOD服务时的接口地址,具体请参考API文档。
demo示例
引入sdk
Plain Text
1import com.baidubce.uploader.UploadStatus;
2import com.baidubce.uploader.UploaderListener;
3import com.baidubce.uploader.VodUpload;
4import com.baidubce.uploader.UploaderInfo;
简单示例
Plain Text
1new Thread() {
2 @Override
3 public void run() {
4 try {
5 VodUpload VodUpload = new VodUpload("申请上传服务接口URL","确认上传服务接口地址");
6 File file = new File(filePath);
7 if (!file.exists()) {
8 throw new FileNotFoundException("The media file " + file.getAbsolutePath() + " doesn't exist!");
9 }
10 String sourceExtension = null;
11 String filename = file.getName();
12 sourceExtension = getFileExtension(filename);
13 VodUpload.setListener(new UploaderListener() {
14 @Override
15 public void onPublishEvent(UploaderInfo info) {
16 Log.d("uploader", "upload file onPublishReady status is " + info.status+"id is "+info.id + "进度"+info.percent);
17 }
18
19 @Override
20 public void onPublishProgress(UploaderInfo info) {
21 Log.d("uploader", "upload file onPublishComplete status is " + info.status+"id is "+info.id + "进度"+info.percent);
22 }
23 @Override
24 public void onPublishComplete(UploaderInfo info) {
25 Log.d("uploader", "upload file onPublishComplete status is " + info.status+"id is "+info.id + "进度"+info.percent+mediaId is"+info.mediaId);
26 }
27 @Override
28 public void onError(UploaderInfo info) {
29 Log.d("uploader", "上传失败,error is"+info.errMsg);
30 }
31 });
32 UploaderInfo UploaderInfo = VodUpload.upload(file);
33 ;} catch (Throwable e) {
34 e.printStackTrace();
35 // Exception means status failed
36 toastMessage(true, "上传失败,错误信息:" + e.getMessage());
37 }
38 }
39 }.start();
40
高级功能
上传文件
Plain Text
1VodUpload.upload(file)
说明:
1、file为待上传的文件,支持上传文件类型:.mp4, .flv, .mov, .3gp, .avi, .mpg, .asf, .wmv, .mkv, .webm, .mxf, .mp3, .m4a, .flac, .ogg, .wav, .ra, .aac, .amr等音视频文件。
暂停上传
SDK支持通过stop()方法,暂停正在上传的文件
Plain Text
1VodUpload.stop();
恢复上传
已经暂停的文件,可以通过resume()方法恢复上传
Plain Text
1VodUpload.resume()
取消上传
SDK支持通过cancel()方法,取消正在上传的文件
Plain Text
1VodUpload.cancel()
说明:
1、取消上传的文件,结束并上传实例销毁(不可恢复)
设置是否分片上传
SDK支持通过setMultipartUpload(boolean val)方法设置是否开启分片上传,默认为开启
Plain Text
1VodUpload.setMultipartUpload(false)
设置分片大小
SDK支持通过setSliceSize(long size)方法设置分片大小。单位为 byte,默认值为 16 1024 1024。
Plain Text
1VodUpload.setSliceSize(8 * 1024 * 1024)
开启并行上传的线程数
SDK支持通过 setSocketNum(int num)方法设置上传线程数。默认值为 1。
Plain Text
1VodUpload.setSocketNum(2)
设置是否自动提取封面
SDK支持通过 setAutoExtractCover(boolean val)方法设置是否自动提取封面。默认为false。
Plain Text
1VodUpload.setAutoExtractCover(true)
获取上传信息
Plain Text
1UploaderInfo info = VodUpload.getUploaderInfo()
说明:
1、UploaderInfo参数信息见接口描述-UploaderInf】。
断点续传
断点续传功能的前提是需要分片上传,SDK 默认开启了分片上传和断点续传功能,无需额外操作。但断点续传功能仅限于为退出app,如果退出app则信息将会被清除。
应用场景:上传文件暂停后,如果恢复上传可以从可以从中断处继续上传,减少重复上传时间。
事件监听
Plain Text
1VodUpload.setListener(new UploaderListener() {
2 @Override
3 public void onPublishEvent(UploaderInfo info) {
4 Log.d("uploader", "upload file onPublishReady status is " + info.status+"id is "+info.id + "进度"+info.percent);
5 }
6
7 @Override
8 public void onPublishProgress(UploaderInfo info) {
9 tvFileSelected.setText("上传进度:" + info.percent + "%");
10 Log.d("uploader", "upload file onPublishComplete status is " + info.status+"id is "+info.id + "进度"+info.percent);
11 }
12
13 @Override
14 public void onPublishComplete(UploaderInfo info) {
15 toastMessage(true, "上传完成,mediaId is"+info.mediaId);
16 Log.d("uploader", "upload file onPublishComplete status is " + info.status+"id is "+info.id + "进度"+info.percent);
17 }
18 @Override
19 public void onError(UploaderInfo info) {
20 toastMessage(true, "上传失败,error is"+info.errMsg);
21 }
22});
接口描述-UploaderInfo
参数 | 类型 | 说明 |
---|---|---|
id | string | 文件上传 id |
name | string | 文件名 |
size | string | 文件大小 |
fileType | string | 文件类型 |
suffixName | string | 文件后缀名 |
status | string | 上传状态 |
percent | number | 文件上传进度百分比, 范围:[0, 100] |
errMsg | string | 上传失败的错误信息 |
mediaId | string | 服务端保存的媒资 Id,当上传完成后才有值 |