SDK 名 | VOD の Android アップロード SDK |
バージョン番号 | V1.1.23.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
をプロジェクトディレクトリにコピーして、package名を手動で変更する必要があります。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
のcanclePublish()
インターフェースを呼び出します。mVideoPublish.canclePublish();
TXUGCPublish
のpublishVideo
を再度呼び出します。enableResume
は、中断からの再開のスイッチであり、デフォルトで有効になっています。TXUGCPublishOptCenter.getInstance().prepareUpload(signature)
を呼び出すことをお勧めします。事前アップロードモジュールは、<ドメイン名,IP>
マッピングテーブルと最適なアップロードリージョンをローカルにキャッシュします。以前にウェブキャストを動的に登録した場合、サブスクリプションがネットワーク切り替え時になると、キャッシュをクリアして自動的に更新します。TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();param.enableHttps = true;
setIsDebug
メソッドで操作する必要があります。デフォルトは有効になります。有効になっている場合、 logcat ログが印刷される同時に、log が app プライベートディレクトリに保存されます。// false ログを無効にするmTXUGCPublish.setIsDebug(false);
TXUGCPublish
パラメータ名 | パラメータの説明 | タイプ | 入力必須 |
context | applicationコンテキスト。 | Context | はい |
customKey | ユーザーを区別するために使用されます。今後の問題特定を容易にするためにAppのアカウントIDを使用することをお勧めします。 | String | いいえ |
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 | いいえ |
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 | はい |
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 | サインが期限切れになりました。 |
この記事はお役に立ちましたか?