2

GoogleDataAPIを使用してYouTubeにアップロードするJavaクライアントアプリケーションを作成しています。Google Data APIライブラリを使用して、アップロードの進行状況を追跡するにはどうすればよいのでしょうか。service.insertを呼び出すだけで、新しいビデオが挿入され、完了するまでブロックされます。

他の誰かがアップロードのステータスを監視し、送信されたバイトをカウントするための解決策を思いついたことがありますか?

アイデアをありがとう

リンク:

http://code.google.com/apis/youtube/2.0/developers_guide_java.html#Direct_Upload

4

1 に答える 1

1

com.google.gdata.data.media.MediaSource writeTo()を拡張して、bytesReadのカウンターを含めます。

     public static void writeTo(MediaSource source, OutputStream outputStream)
        throws IOException {

      InputStream sourceStream = source.getInputStream();
      BufferedOutputStream bos = new BufferedOutputStream(outputStream);
      BufferedInputStream bis = new BufferedInputStream(sourceStream);
      long byteCounter = 0L; 

      try {
        byte [] buf = new byte[2048]; // Transfer in 2k chunks
        int bytesRead = 0;
        while ((bytesRead = bis.read(buf, 0, buf.length)) >= 0) {
          // byte counter
          byteCounter += bytesRead;
          bos.write(buf, 0, bytesRead); 
        }
        bos.flush();
      } finally {
        bis.close();
      }
    }
  }
于 2011-03-08T01:55:11.267 に答える