tencent cloud

Video on Demand

릴리스 노트 및 공지 사항
릴리스 노트
제품 소개
제품 개요
Product Features
제품 기능
제품 장점
시나리오
솔루션
구매 가이드
과금 개요
과금 방식
구매 가이드
청구서 조회
연장 안내
연체 안내
환불 안내
시작하기
콘솔 가이드
콘솔 소개
서비스 개요
애플리케이션 관리
미디어 관리
리소스 패키지 관리
License Management
사례 튜토리얼
미디어 업로드
VOD 미디어 파일을 스마트 콜드 스토리지하는 방법
비디오 처리
배포 및 재생
이벤트 알림 수신 방법
원본 서버 마이그레이션 방법
라이브 방송 녹화
사용자 지정 Origin-pull을 수행하는 방법
라이브 방송 하이라이트 클리핑을 VOD에 통합하기 위한 가이드
EdgeOne을 사용하여 VOD 콘텐츠 배포하는 방법
개발 가이드
미디어 업로드
미디어 처리
비디오 AI
이벤트 알림
비디오 재생
미디어 파일 다운로드
서브 애플리케이션 시스템
오류 코드
플레이어 SDK 문서
Overview
Basic Concepts
Features
Free Demo
Free Trial License
Purchase Guide
SDK Download
Licenses
Player Guide
Integration (UI Included)
Integration (No UI)
Advanced Features
API Documentation
Player Adapter
Player SDK Policy
FAQs
모바일 재생
요금
비디오 업로드
비디오 배포
비디오 재생
Web 재생
전체 화면 재생
데이터 통계
액세스 관리
미디어 자산 콜드 스토리지
Agreements
Service Level Agreement
VOD 정책
개인 정보 보호 정책
데이터 처리 및 보안 계약
문의하기
용어집

Android SDK

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2024-11-26 17:26:52
VOD는 Android 클라이언트에 비디오를 업로드하기 위한 SDK를 제공합니다. 업로드 프로세스에 대한 자세한 내용은 클라이언트 업로드 가이드를 참고하십시오.
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 디렉토리 아래에 있습니다.

업로드 라이브러리와 소스 코드 통합

1. Demo/app/src/main/java/com/tencent/ugcupload/demo/videoupload를 프로젝트 디렉터리에 복사하고 패키지 이름을 수동으로 수정합니다.
2. 프로젝트에 종속성을 추가하려면 Demo/app/build.gradle을 참고하십시오.
implementation 'com.qcloud.cos:cos-android-nobeacon:5.9.25'
implementation 'com.qcloud.cos:quic:1.5.43'
설명:
수동 통합을 참고하여 해당 종속 라이브러리를 통합할 수도 있습니다.
3. 비디오 업로드를 위해서는 네트워크 및 스토리지 접근 권한이 필요합니다. 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"/>
4. 비디오 업로드 시 네트워크 변동에 따라 업로드 IP를 갱신해야 합니다. 업무 요구에 따라 브로드캐스트에 동적으로 등록할 수 있습니다. 예시는 다음과 같습니다:
@Override
protected 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);
}
}

@Override
protected void onDestroy() {
super.onDestroy();
// your code......
unRegisterNetReceiver();
}

비디오 간편 업로드

업로드 객체 초기화

TXUGCPublish mVideoPublish = new TXUGCPublish(this.getApplicationContext(), "independence_android")

업로드 객체 콜백 설정

mVideoPublish.setListener(new TXUGCPublishTypeDef.ITXVideoPublishListener() {
@Override
public void onPublishProgress(long uploadBytes, long totalBytes) {
mProgress.setProgress((int) (100*uploadBytes/totalBytes));
}

@Override
public 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";
signature계산 방법에 대한 자세한 내용은 클라이언트 업로드 서명을 참고하십시오.

업로드 메소드 호출

int publishCode = mVideoPublish.publishVideo(param);

이미지 간편 업로드

업로드 객체 초기화

TXUGCPublish mVideoPublish = new TXUGCPublish(this.getApplicationContext(), "independence_android")

업로드 객체 콜백 설정

mVideoPublish.setListener(new TXUGCPublishTypeDef.ITXMediaPublishListener() {
@Override
public void onMediaPublishProgress(long uploadBytes, long totalBytes) {
mProgress.setProgress((int) (100*uploadBytes/totalBytes));
}
@Override
public 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";
signature계산 방법에 대한 자세한 내용은 클라이언트 업로드 서명을 참고하십시오.

업로드 메소드 호출

int publishCode = mVideoPublish.publishMedia(param);
설명:
업로드 방법은 파일 크기에 따라 단순 업로드 또는 멀티파트 업로드를 자동으로 선택하므로, 멀티파트 업로드의 모든 단계를 처리할 필요가 없습니다.
지정된 서브 애플리케이션에 업로드하려면 서브 애플리케이션 시스템 - 클라이언트에서 업로드를 참고하십시오.

고급 기능

커버 업로드

커버 이미지의 경로를 업로드 매개변수로 추가합니다.
TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();
param.signature = "xxx";
param.videoPath = "xxx";
param.coverPath = "xxx";
signature계산 방법에 대한 자세한 내용은 클라이언트 업로드 서명을 참고하십시오.

업로드 취소 및 재개

업로드를 취소하려면 TXUGCPublishcancelPublish() API를 호출합니다.
mVideoPublish.canclePublish();
업로드를 재개하려면 동일한 업로드 매개변수와 동일한 비디오 및 커버 이미지 경로를 사용하여 TXUGCPublishpublishVideo를 다시 호출합니다.

체크포인트 재시작

VOD는 업로드 중 체크포인트 재시작을 지원합니다. 업로드가 예기치 않게 종료된 경우 중단 지점에서 업로드를 재개하여 업로드 시간을 절약할 수 있습니다. 체크포인트 재시작은 1일 이내에 유효합니다. 비디오 업로드가 중단되었다가 하루 이내에 재개되면 업로드를 재개할 수 있습니다. 그렇지 않으면 전체 비디오가 다시 업로드됩니다.
업로드 매개변수 enableResume은 체크포인트 재시작 스위치로, 기본 값은 활성화입니다.

사전 업로드

업로드 오류의 대부분은 네트워크 연결 실패 또는 시간 초과로 인해 발생합니다. 이러한 문제를 해결하기 위해 HTTPDNS 리졸브, 권장 업로드 대상 리전 가져오기, 최적의 업로드 대상 리전 감지 등 최적화된 사전 업로드 로직을 추가했습니다.
App을 활성화할 때 TXUGCPublishOptCenter.getInstance().prepareUpload(signature) 를 호출하는 것이 좋습니다. 사전 업로드 모듈은 <도메인, IP>의 매핑 테이블과 최적의 업로드 대상 지역을 로컬로 캐시하고. 이전에 네트워크 브로드캐스트를 동적으로 등록했다면, 네트워크 전환 시 구독을 받고 캐시를 비우고 자동으로 새로고침 합니다.
signature계산 방법에 대한 자세한 내용은 클라이언트 업로드 서명을 참고하십시오.

https 업로드 활성화

HTTPS 업로드를 활성화하려면 TXPublishParam의 enableHTTPS를 true로 설정하십시오. 기본값은 false입니다.
TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();
param.enableHttps = true;

로그 비활성화

로그 비활성화는 TXUGCPublish의 setIsDebug 메서드를 통해 수행할 수 있으며, 기본적으로 활성화되어 있습니다. 활성화된 상태에서는 logcat 로그가 출력되고, log는 앱의 개인 디렉토리에 저장됩니다.
// false 로그 비활성화
mTXUGCPublish.setIsDebug(false);

비디오 업로드 API 설명

업로드 객체 초기화: TXUGCPublish
매개변수 이름
매개변수 설명
유형
필수 입력
context
application 컨텍스트.
Context
Yes
customKey
이 매개변수는 사용자를 구별하는 데 사용됩니다. 향후 문제 해결을 위해 App 계정 ID를 이 매개변수의 값으로 사용하는 것이 좋습니다.
String
No
VOD appId 설정: 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

이미지 업로드 API 설명

업로드 객체 초기화: TXUGCPublish
매개변수 이름
매개변수 설명
유형
필수 입력
context
application 컨텍스트.
Context
Yes
customKey
이 매개변수는 사용자를 구별하는 데 사용됩니다. 후속 문제 해결을 용이하게 하려면 App 계정 ID를 이 매개변수의 값으로 사용하는 것이 좋습니다.
String
No
VOD appId 설정: 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

오류 코드

SDK는 API 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
서명이 만료되었습니다.


도움말 및 지원

문제 해결에 도움이 되었나요?

피드백