0

Android アプリで Dailymotion クラウドを使用して、動画をサーバーにアップロードしています。アップロード中にプログレスバーを表示したいのですが、バイトごとの値を取得してプログレスバーを更新する方法がわかりません。

これは Dailymotion クラウド API リンクですDailymotion クラウド API リンク

インターネットで検索しているときに、Java でこの進行状況バーを見つけましたが、dailymotion API のこのメソッドにどのように実装できるかわかりません。

進行状況バーを表示するために非同期タスクを使用していますアップロード用のAndroidコードは次のとおりです

      try
        {
            CloudKey cloud = new CloudKey(user_id, api_key);
            File f = new File(selectedVideoPath);
            String media_id = cloud.mediaCreate(f);
            System.out.println(media_id);
            Log.d("Testing", "media_id is"+media_id);
        }

そして、ここにプログレスバーを表示したいDailymotion APIのCloud.class mediacreate()があります..任意のアイデア

public String mediaCreate(File f) throws Exception
{
    return this.mediaCreate(f, null, null);
}

public String mediaCreate(File f, DCArray assets_names, DCObject meta) throws Exception
{
    String upload_url = this.fileUpload();

    PostMethod filePost = null;
    int status;
    try
    {
        filePost = new PostMethod(upload_url);

        Part[] parts = {
            new FilePart("file", f)
        };

        filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));

        HttpClient client = new HttpClient();
        client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
         status = client.executeMethod(filePost);

        if (status == HttpStatus.SC_OK)
        {
            ObjectMapper mapper = new ObjectMapper();
            DCObject json_response = DCObject.create(mapper.readValue(filePost.getResponseBodyAsString(), Map.class));
            return this.mediaCreate(json_response.pull("url"), assets_names, meta);
        }
        else
        {
            throw new DCException("Upload failed.");
        }
    }
    catch (Exception e)
    {
        throw new DCException("Upload failed: " + e.getMessage());
    }
    finally
    {
        if (filePost != null)
        {
            filePost.releaseConnection();
        }
    }
}
4

1 に答える 1

1

あなたが言及した DailyMotion クラスでこれを行うための API サポートを見つけることができません。

そのライブラリのソースを編集できる場合は、MultipartRequestEntity を拡張して進行状況のコールバックのサポートを追加してから、mediaCreate メソッドの DailyMotion コードにその新しいクラスをプラグインするだけです。

filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));

.. MultipartRequestEntity を新しいものに置き換えます。ExtendedMultipartRequestEntity。

その方法については、 File Upload with Java (with progress bar)で Tuler と他のユーザーによる回答を参照してください。

コールバックを介して更新を取得したら、進行状況バーを接続できます。

于 2013-10-14T17:09:16.827 に答える