릴리스 노트
SDK 이름 | VOD Android 업로드 SDK |
버전 번호 | V1.2.5.0 |
SDK 소개 | App의 최종 사용자가 로컬 비디오를 VOD 플랫폼에 업로드하는 시나리오 제공합니다 |
개발자 | Tencent Cloud Computing (Beijing) Co., Ltd. |
SDK 다운로드 | 1. 다운로드하기를 클릭하여 Android 업로드 Demo 및 소스 코드를 다운로드하고, 다운로드된 압축 파일을 풀면 Demo 디렉토리를 볼 수 있습니다. 2. 업로드 소스 코드는 Demo/app/src/main/java/com/tencent/ugcupload/demo/videoupload 디렉토리 아래에 있습니다. |
Demo/app/src/main/java/com/tencent/ugcupload/demo/videoupload를 프로젝트 디렉터리에 복사하고 패키지 이름을 수동으로 수정합니다.Demo/app/build.gradle을 참고하십시오.implementation 'com.qcloud.cos:cos-android-nobeacon:5.9.25'implementation 'com.qcloud.cos:quic:1.5.43'
AndroidManifest.xml에 다음 권한 선언을 추가할 수 있습니다.<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// your code......registerNetReceiver();}private void registerNetReceiver() {if (null == mNetWorkStateReceiver) {mNetWorkStateReceiver = new TVCNetWorkStateReceiver();IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);registerReceiver(mNetWorkStateReceiver, intentFilter);}}private void unRegisterNetReceiver() {if (null != mNetWorkStateReceiver) {unregisterReceiver(mNetWorkStateReceiver);}}@Overrideprotected void onDestroy() {super.onDestroy();// your code......unRegisterNetReceiver();}
TXUGCPublish mVideoPublish = new TXUGCPublish(this.getApplicationContext(), "independence_android")
mVideoPublish.setListener(new TXUGCPublishTypeDef.ITXVideoPublishListener() {@Overridepublic void onPublishProgress(long uploadBytes, long totalBytes) {mProgress.setProgress((int) (100*uploadBytes/totalBytes));}@Overridepublic void onPublishComplete(TXUGCPublishTypeDef.TXPublishResult result) {mResultMsg.setText(result.retCode + " Msg:" + (result.retCode == 0 ? result.videoURL : result.descMsg));}});
TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();param.signature = "xxx";param.videoPath = "xxx";
int publishCode = mVideoPublish.publishVideo(param);
TXUGCPublish mVideoPublish = new TXUGCPublish(this.getApplicationContext(), "independence_android")
mVideoPublish.setListener(new TXUGCPublishTypeDef.ITXMediaPublishListener() {@Overridepublic void onMediaPublishProgress(long uploadBytes, long totalBytes) {mProgress.setProgress((int) (100*uploadBytes/totalBytes));}@Overridepublic void onMediaPublishComplete(TXUGCPublishTypeDef.TXMediaPublishResult mediaResult) {mResultMsg.setText(result.retCode + " Msg:" + (result.retCode == 0 ? result.videoURL : result.descMsg));}});
TXUGCPublishTypeDef.TXMediaPublishParam param = new TXUGCPublishTypeDef.TXMediaPublishParam();param.signature = "xxx";param.mediaPath = "xxx";
int publishCode = mVideoPublish.publishMedia(param);
TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();param.signature = "xxx";param.videoPath = "xxx";param.coverPath = "xxx";
TXUGCPublish의 cancelPublish() API를 호출합니다.mVideoPublish.canclePublish();
TXUGCPublish의 publishVideo를 다시 호출합니다.enableResume은 체크포인트 재시작 스위치로, 기본 값은 활성화입니다.TXUGCPublishOptCenter.getInstance().prepareUpload(signature) 를 호출하는 것이 좋습니다. 사전 업로드 모듈은 <도메인, IP>의 매핑 테이블과 최적의 업로드 대상 지역을 로컬로 캐시하고. 이전에 네트워크 브로드캐스트를 동적으로 등록했다면, 네트워크 전환 시 구독을 받고 캐시를 비우고 자동으로 새로고침 합니다.TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();param.enableHttps = true;
setIsDebug 메서드를 통해 수행할 수 있으며, 기본적으로 활성화되어 있습니다. 활성화된 상태에서는 logcat 로그가 출력되고, log는 앱의 개인 디렉토리에 저장됩니다.// false 로그 비활성화mTXUGCPublish.setIsDebug(false);
TXUGCPublish매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
context | application 컨텍스트. | Context | Yes |
customKey | 이 매개변수는 사용자를 구별하는 데 사용됩니다. 향후 문제 해결을 위해 App 계정 ID를 이 매개변수의 값으로 사용하는 것이 좋습니다. | String | No |
TXUGCPublish.setAppId매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
appId | VOD appId. | int | Yes |
TXUGCPublish.publishVideo매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
param | 업로드 매개변수. | TXUGCPublishTypeDef.TXPublishParam | Yes |
TXUGCPublishTypeDef.TXPublishParam매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
signature | String | Yes | |
videoPath | 로컬 비디오 파일 경로. | String | Yes |
coverPath | 로컬 커버 이미지 파일 경로. 기본 값: 커버 파일 미사용. | String | No |
enableResume | 체크포인트 재시작 활성화 여부. 기본 값: 활성화. | boolean | No |
enableHttps | HTTPS 활성화 여부. 기본 값: 비활성화 | boolean | No |
fileName | Tencent Cloud에 업로드된 비디오 파일의 이름입니다. 이 매개변수를 비워두면 기본적으로 로컬 파일 이름이 사용됩니다. | String | No |
enablePreparePublish | 사전 업로드 메커니즘을 활성화할지 여부를 선택합니다. 기본적으로는 활성화되어 있습니다. 사전 업로드 메커니즘은 파일 업로드 품질을 크게 향상시킬 수 있습니다. | boolean | No |
sliceSize | 분할 크기는 최소 1MB, 최대 10MB를 지원하며, 기본값은 업로드 파일 크기를 10으로 나눈 값입니다. | long | No |
concurrentCount | 분할 업로드의 최대 동시 작업 개수는 기본적으로 4개입니다. | int | No |
trafficLimit | 속도 제한 값 설정 범위는 819200 ~ 838860800, 즉 100KB/s ~ 100MB/s입니다. 이 범위를 초과하면 400 오류가 반환됩니다. 시간 초과를 방지하기 위해 이 값을 너무 작게 설정하지 않는 것이 좋습니다. -1은 속도 제한이 없음을 의미합니다. | long | No |
uploadResumeController | 재개 컨트롤러는 재개 키 값을 계산하고 저장하는 프로세스를 스스로 구현할 수 있으며, 기본적으로 md5를 이용해 파일 키 값을 계산합니다. | IUploadResumeController | No |
TXUGCPublish.setListener매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
listener | 업로드 진행률 및 결과 콜백 리스너. | TXUGCPublishTypeDef.ITXVideoPublishListener | Yes |
TXUGCPublishTypeDef.ITXVideoPublishListener.onPublishProgress변수 이름 | 변수 설명 | 유형 |
uploadBytes | 업로드된 바이트 수. | long |
totalBytes | 총 바이트 수. | long |
TXUGCPublishTypeDef.ITXVideoPublishListener.onPublishComplete변수 이름 | 변수 설명 | 유형 |
result | 업로드 결과. | TXUGCPublishTypeDef.TXPublishResult |
TXUGCPublishTypeDef.TXPublishResult멤버 변수 이름 | 변수 설명 | 유형 |
retCode | 결과 코드. | int |
descMsg | 업로드 실패에 대한 오류 설명. | String |
videoId | VOD 파일 ID. | String |
videoURL | 비디오 스토리지 주소. | String |
coverURL | 커버 스토리지 주소. | String |
TXUGCPublishOptCenter.prepareUpload매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
signature | String | Yes |
TXUGCPublish매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
context | application 컨텍스트. | Context | Yes |
customKey | 이 매개변수는 사용자를 구별하는 데 사용됩니다. 후속 문제 해결을 용이하게 하려면 App 계정 ID를 이 매개변수의 값으로 사용하는 것이 좋습니다. | String | No |
TXUGCPublish.setAppId매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
appId | VOD appId. | int | Yes |
TXUGCPublish.publishMedia매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
param | 업로드 매개변수. | TXUGCPublishTypeDef.TXMediaPublishParam | Yes |
TXUGCPublishTypeDef.TXMediaPublishParam매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
signature | String | Yes | |
mediaPath | 로컬 이미지 파일 경로. | String | Yes |
enableResume | 체크포인트 재시작 활성화 여부. 기본 값: 활성화. | boolean | No |
enableHttps | HTTPS 활성화 여부. 기본 값: 비활성화. | boolean | No |
fileName | Tencent Cloud에 업로드된 비디오 파일의 이름. 이 매개변수를 비워두면 기본적으로 로컬 파일 이름이 사용됩니다. | String | No |
enablePreparePublish | 사전 업로드 메커니즘을 활성화할지 여부를 선택합니다. 기본적으로는 활성화되어 있습니다. 사전 업로드 메커니즘은 파일 업로드 품질을 크게 향상시킬 수 있습니다. | boolean | No |
sliceSize | 분할 크기는 최소 1MB, 최대 10MB를 지원하며, 기본값은 업로드 파일 크기를 10으로 나눈 값입니다. | long | No |
concurrentCount | 분할 업로드의 최대 동시 작업 개수는 기본적으로 4개입니다. | int | No |
trafficLimit | 속도 제한 값 설정 범위는 819200 ~ 838860800, 즉 100KB/s ~ 100MB/s입니다. 이 범위를 초과하면 400 오류가 반환됩니다. 시간 초과를 방지하기 위해 이 값을 너무 작게 설정하지 않는 것이 좋습니다. -1은 속도 제한이 없음을 의미합니다. | long | No |
uploadResumeController | 재개 컨트롤러는 재개 키 값을 계산하고 저장하는 프로세스를 스스로 구현할 수 있으며, 기본적으로 md5를 이용해 파일 키 값을 계산합니다. | IUploadResumeController | No |
TXUGCPublish.setListener매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
listener | 업로드 진행률 및 결과 콜백 리스너. | TXUGCPublishTypeDef.ITXMediaPublishListener | Yes |
TXUGCPublishTypeDef.ITXMediaPublishListener.onPublishProgress변수 이름 | 변수 설명 | 유형 |
uploadBytes | 업로드된 바이트 수. | long |
totalBytes | 총 바이트 수. | long |
TXUGCPublishTypeDef.ITXMediaPublishListener.onPublishComplete변수 이름 | 변수 설명 | 유형 |
result | 업로드 결과. | TXUGCPublishTypeDef.TXPublishResult |
TXUGCPublishTypeDef.TXMediaPublishResult멤버 변수 이름 | 변수 설명 | 유형 |
retCode | 결과 코드. | int |
descMsg | 업로드 실패에 대한 오류 설명. | String |
mediaId | VOD 미디어 파일 ID. | String |
mediaURL | 미디어 리소스 스토리지 주소. | String |
TXUGCPublishOptCenter.prepareUpload매개변수 이름 | 매개변수 설명 | 유형 | 필수 입력 |
signature | String | Yes |
TXUGCPublishTypeDef.ITXVideoPublishListene\\ITXMediaPublishListener를 통해 비디오 업로드 상태를 수신합니다. 따라서 TXUGCPublishTypeDef.TXPublishResult\\TXMediaPublishResult에서 retCode를 사용하여 비디오 업로드 상태를 확인할 수 있습니다.상태 코드 | TVCConstants | 설명 |
0 | NO_ERROR | 업로드 성공. |
1001 | ERR_UGC_REQUEST_FAILED | 업로드 요청 실패. 이는 일반적으로 클라이언트의 서명이 만료되었거나 유효하지 않기 때문입니다. App 서명을 다시 신청해야 합니다. |
1002 | ERR_UGC_PARSE_FAILED | 요청 정보 구문 분석 실패. |
1003 | ERR_UPLOAD_VIDEO_FAILED | 비디오 업로드 실패. |
1004 | ERR_UPLOAD_COVER_FAILED | 커버 이미지 업로드 실패. |
1005 | ERR_UGC_FINISH_REQUEST_FAILED | 업로드 요청 취소 실패. |
1006 | ERR_UGC_FINISH_RESPONSE_FAILED | 업로드 종료 요청 응답 오류. |
1007 | ERR_CLIENT_BUSY | 클라이언트 사용 중(객체가 추가 요청을 처리할 수 없음). |
1008 | ERR_FILE_NOEXIT | 업로드할 파일 없음. |
1009 | ERR_UGC_PUBLISHING | 동영상 업로드 중. |
1010 | ERR_UGC_INVALID_PARAM | 업로드 매개변수 공란. |
1012 | ERR_UGC_INVALID_SIGNATURE | 비디오 업로드 signature 공란. |
1013 | ERR_UGC_INVALID_VIDOPATH | 비디오 파일 경로 공란. |
1014 | ERR_UGC_INVALID_VIDEO_FILE | 현재 경로에 비디오 파일 없음. |
1015 | ERR_UGC_FILE_NAME | 동영상 파일 이름 40자 초과 또는 특수 기호가 포함됨. |
1016 | ERR_UGC_INVALID_COVER_PATH | 잘못된 커버 이미지 경로. 파일 없음. |
1017 | ERR_USER_CANCEL | 사용자 업로드 취소. |
1020 | ERR_UPLOAD_SIGN_EXPIRED | 서명이 만료되었습니다. |
피드백