2016-12-19 2 views
0

Ich magRestFB keine Ahnung, wie kann ich den Upload-Fortschritt des Videos wissen?

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) {} 

es funktioniert sehr gut ein Video mit dem Rest FB schreiben, aber ich würde gerne wissen, ob es möglich ist, den „Status“ des Upload zu kennen. Ich meine, ich hätte gerne einen Fortschrittsbalken oder den Prozentsatz oder etwas ähnliches.

Vielen Dank!

Antwort

0

Ihre veröffentlichen Methode wird eine Instanz eines Video zurückkehren ich denke, wo Sie den Quellcode finden Sie hier: Video.java

Auch Antwort überprüfen, ist der richtige Typ:

if (response instanceof Video) 
    // Do Something 

Sie können jetzt holen Sie sich die Video-Status: Video.java#L644

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

bearbeiten: Es sieht Sie Ihren Code ein wenig zu ändern, haben ein Video zu erhalten:

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) {} 
+0

unfortunatly funktioniert es nicht: (Ich habe eine NullPointerException, weil die "Antwort" null ist –

+0

Ohne meine Änderungen, in Ihrem ursprünglichen Code, was die response.getType() zurückgibt? – Xephi

+0

die Antwort ist "null", wenn ich response.getType() tun –

1

Zuerst alles, was Sie brauchen eine weitere Anforderung zu tun, um die Videofelder zu erhalten. Ich meine, nachdem Sie Anfrage tat veröffentlichen Sie eine postID, ist der nächste Schritt in dieser Art und Weise zu tun bekommen sollte:

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

Und vielleicht testen mit einem Debug:

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

Bitte nehmen Sie sich etwas Zeit, um sich mit der Formatierung vertraut zu machen, Zitatblöcke (Zeilen mit dem Präfix '>') sind für Text aus anderen Quellen. Verwenden Sie für Code Codeblöcke (4 Leerzeichen). –

Verwandte Themen