tencent cloud

フィードバック

AndroidのアップロードSDK

最終更新日:2024-11-15 10:50:55
    VODは、Androidプラットフォームでビデオをアップロードするシナリオ向けに、AndroidアップロードSDKを提供しています。アップロードのフローについては、クライアントからのアップロードガイド をご参照ください。
    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 ディレクトリにアップロードされます。

    アップロードライブラリとソースコードの統合

    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
    サインが期限切れになりました。
    
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)