RestFB любая идея, как я могу узнать прогресс загрузки видео?

Я хочу опубликовать видео с Rest FB

try {
        FileInputStream fis = new FileInputStream(new File("MySuperFile"));
        FacebookType response = facebookClient.publish(user.getId()+"/videos", FacebookType.class,
                                                BinaryAttachment.with("formatOfMySuperVideo",fis),
                                                Parameter.with("description","TheDescriptionOfMySuperVideo"));
} catch (FileNotFoundException ea) {}

это работает очень хорошо, НО я хотел бы знать, возможно ли узнать "статус" загрузки. Я имею в виду, что я хотел бы иметь индикатор выполнения или процент или что-то подобное.

Большое спасибо!

2 ответа

Прежде всего вам нужно сделать еще один запрос, чтобы получить поля видео. Я имею в виду, что после того, как вы опубликовали запрос, вы должны получить postId, таким образом, следующий шаг:

Video video  facebookClient.fetchObject(response.getId(),Video.class, Parameter.with("fields", "status"));

И, возможно, проверить с отладкой:

logger.debug("Progress... " + video.getStatus().getProcessingProgress());

Я думаю, что ваш метод публикации вернет экземпляр видео, где вы можете найти исходный код здесь: Video.java

Также проверьте ответ правильный тип:

if (response instanceof Video)
    // Do Something

Теперь вы можете получить статус видео: Video.java # L644

Video video = (Video) response;
response.getStatus().getProcessingProgress(); // Contain a percentage

Изменить: похоже, вы должны немного изменить свой код, чтобы получить видео:

try {
    FileInputStream fis = new FileInputStream(new File("MySuperFile"));
    Video response = facebookClient.publish(user.getId()+"/videos", Video.class, BinaryAttachment.with("formatOfMySuperVideo",fis), Parameter.with("description","TheDescriptionOfMySuperVideo"));
    response.getStatus().getProcessingProgress(); // Contain the upload percentage
} catch (FileNotFoundException ea) {}
Другие вопросы по тегам