tencent cloud

Video on Demand

AndroidのアップロードSDK

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-11-26 17:26:29
VODは、Androidプラットフォームでビデオをアップロードするシナリオ向けに、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をプロジェクトディレクトリにコピーして、package名を手動で変更する必要があります。
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の計算ルールについては、クライアントからのアップロード署名 をご参照ください。

アップロードのキャンセルと再開

アップロードをキャンセルするには、TXUGCPublishcanclePublish() インターフェースを呼び出します。
mVideoPublish.canclePublish();
アップロードを再開するには、同じアップロードパラメータを使用し(ビデオパスとカバーパスは変更されません)TXUGCPublishpublishVideoを再度呼び出します。

中断からの再開

VODはビデオのアップロード中、中断からの再開をサポートします。アップロードが予期せず終了した場合に、中断ポイントからアップロードを再開できるため、アップロード時間を短縮できます。中断からの再開の有効期限は1日です。つまり同じビデオのアップロードが中断された場合、1日以内に再度アップロードすると中断ポイントからそのままアップロードできます。1日を超えるとデフォルトでは、完全なビデオを再度アップロードします。
アップロードパラメータのenableResumeは、中断からの再開のスイッチであり、デフォルトで有効になっています。

事前アップロード

実際のアップロード中に発生するエラーのほとんどは、ネットワーク接続の障害またはタイムアウトに起因しています。このような問題を最適化するために、最適化された事前アップロードロジックを追加しました。事前アップロードには、HTTPDNSの解決 、推奨されるアップロードリージョンの取得および最適なアップロードリージョンの検出が含まれます。
Appを起動するときにTXUGCPublishOptCenter.getInstance().prepareUpload(signature) を呼び出すことをお勧めします。事前アップロードモジュールは、<ドメイン名,IP>マッピングテーブルと最適なアップロードリージョンをローカルにキャッシュします。以前にウェブキャストを動的に登録した場合、サブスクリプションがネットワーク切り替え時になると、キャッシュをクリアして自動的に更新します。
signatureの計算ルールについては、クライアントからのアップロード署名 をご参照ください。

httpsアップロードの有効化

アップロードパラメータのTXPublishParamの中のenableHTTPSをtrueに設定すれば完了です。デフォルトではfalseになっています。
TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();
param.enableHttps = true;

ログを無効にする

ログを無効にするには、TXUGCPublish の setIsDebug メソッドで操作する必要があります。デフォルトは有効になります。有効になっている場合、 logcat ログが印刷される同時に、log が app プライベートディレクトリに保存されます。
// false ログを無効にする
mTXUGCPublish.setIsDebug(false);

ビデオアップロードインターフェースの説明

アップロードオブジェクトの初期化:TXUGCPublish
パラメータ名
パラメータの説明
タイプ
入力必須
context
applicationコンテキスト。
Context
はい
customKey
ユーザーを区別するために使用されます。今後の問題特定を容易にするためにAppのアカウントIDを使用することをお勧めします。
String
いいえ
VOD appIdの設定:TXUGCPublish.setAppId
パラメータ名
パラメータの説明
タイプ
入力必須
appId
VOD appId。
int
はい
アップロードビデオ:TXUGCPublish.publishVideo
パラメータ名
パラメータの説明
タイプ
入力必須
param
アップロードパラメータ。
TXUGCPublishTypeDef.TXPublishParam
はい
アップロードパラメータ:TXUGCPublishTypeDef.TXPublishParam
パラメータ名
パラメータの説明
タイプ
入力必須
signature
String
はい
videoPath
ローカルビデオファイルパス。
String
はい
coverPath
ローカルカバーファイルパス。デフォルトではカバーファイルは含まれません。
String
いいえ
enableResume
中断ポイントからの再開の有効無効を指定。デフォルトでは有効になっています。
boolean
いいえ
enableHttps
HTTPSの有効無効を指定。デフォルトでは無効になっています。
boolean
いいえ
fileName
Tencent Cloudにアップロードされたビデオファイル名です。空のままの場合、デフォルトでローカルファイル名が使用されます。
String
いいえ
enablePreparePublish
プリアップロードメカニズムを有効にするかどうか。デフォルトは有効になります。プリアップロードメカニズムは、ファイルアップロードの品質を大幅に向上させることができます。
boolean
いいえ
sliceSize
シャードサイズ。最小 1M、最大 10M に対応。デフォルトはアップロードされたファイルサイズを 10 で割った値です。
long
いいえ
concurrentCount
シャードアップロードの最大並列処理数。デフォルトは4個です。
int
いいえ
trafficLimit
速度制限値設定範囲は 819200 ~ 838860800、つまり 100KB/s ~ 100MB/s です。この範囲を超えると 400 エラーが返されます。タイムアウトを防ぐために、この値をあまり小さく設定することを推奨しません。-1 は速度制限なしを表します。
long
いいえ
uploadResumeController
続行ポイントコントローラー。続行ポイントキー値の計算と保存を自分で実現できます。デフォルトでは md5 でファイルのキー値を計算します。
IUploadResumeController
いいえ
アップロードコールバックの設定:TXUGCPublish.setListener
パラメータ名
パラメータの説明
タイプ
入力必須
listener
アップロードの進行状況と結果のコールバックを監視します。
TXUGCPublishTypeDef.ITXVideoPublishListener
はい
進行状況コールバック: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
はい

画像アップロードインターフェースの説明

アップロードオブジェクトの初期化:TXUGCPublish
パラメータ名
パラメータの説明
タイプ
入力必須
context
applicationコンテキスト。
Context
はい
customKey
ユーザーを区別するために使用されます。今後の問題特定を容易にするためにAppのアカウントIDを使用することをお勧めします。
String
いいえ
VOD appIdの設定:TXUGCPublish.setAppId
パラメータ名
パラメータの説明
タイプ
入力必須
appId
VOD appId。
int
はい
アップロード画像:TXUGCPublish.publishMedia
パラメータ名
パラメータの説明
タイプ
入力必須
param
アップロードパラメータ。
TXUGCPublishTypeDef.TXMediaPublishParam
はい
アップロードパラメータ:TXUGCPublishTypeDef.TXMediaPublishParam
パラメータ名
パラメータの説明
タイプ
入力必須
signature
String
はい
mediaPath
ローカル画像ファイルパス。
String
はい
enableResume
中断ポイントからの再開の有効無効を指定。デフォルトでは有効になっています。
boolean
いいえ
enableHttps
HTTPSの有効無効を指定。デフォルトでは無効になっています。
boolean
いいえ
fileName
Tencent Cloudにアップロードされたビデオファイル名です。空のままの場合、デフォルトでローカルファイル名が使用されます。
String
いいえ
enablePreparePublish
プリアップロードメカニズムを有効にするかどうか。デフォルトは有効になります。プリアップロードメカニズムは、ファイルアップロードの品質を大幅に向上させることができます。
boolean
いいえ
sliceSize
シャードサイズ。最小 1M、最大 10M に対応。デフォルトはアップロードされたファイルサイズを 10 で割った値です。
long
いいえ
concurrentCount
シャードアップロードの最大並列処理数。デフォルトは4個です。
int
いいえ
trafficLimit
速度制限値設定範囲は 819200 ~ 838860800、つまり 100KB/s ~ 100MB/s です。この範囲を超えると 400 エラーが返されます。タイムアウトを防ぐために、この値をあまり小さく設定することを推奨しません。-1 は速度制限なしを表します。
long
いいえ
uploadResumeController
続行ポイントコントローラー。続行ポイントキー値の計算と保存を自分で実現できます。デフォルトでは md5 でファイルのキー値を計算します。
IUploadResumeController
いいえ
アップロードコールバックの設定:TXUGCPublish.setListener
パラメータ名
パラメータの説明
タイプ
入力必須
listener
アップロードの進行状況と結果のコールバックを監視します。
TXUGCPublishTypeDef.ITXMediaPublishListener
はい
進行状況コールバック: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
はい

エラーコード

SDKは、TXUGCPublishTypeDef.ITXVideoPublishListene\\ITXMediaPublishListenerインターフェースを介してビデオのアップロードのステータスを監視します。従って、TXUGCPublishTypeDef.TXPublishResult\\TXMediaPublishResultretCodeを使用して、ビデオのアップロード状況を確認することができます。
ステータスコード
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
サインが期限切れになりました。


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック