Как измерить битрейт загрузки с помощью Java + Google Data API - PullRequest
2 голосов
/ 02 марта 2011

Я пишу клиентское приложение Java, которое использует API данных Google для загрузки данных на YouTube. Мне интересно, как я могу отслеживать отслеживание процесса загрузки, используя библиотеку API данных Google, которую я просто называю service.insert, чтобы вставить новое видео, которое блокируется до его завершения.

Кто-нибудь еще придумал решение для отслеживания статуса загрузки и подсчета байтов по мере их отправки?

Спасибо за любые идеи

Ссылка:

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

1 Ответ

1 голос
/ 08 марта 2011

Расширьте 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();
      }
    }
  }
...