Java: Video in Binary Value konvertieren?

...komplette Frage anzeigen

1 Antwort

Wenn du nur eine Datei als Binary brauchst, dann kannst du das so machen:

byte[] binaryValue = Files.readAllBytes(pfadZurVideoDatei);
paulissogay 04.09.2017, 15:44

Danke. Leider bekomme ich aber nur eine IOException raus. Der String lautet "[B@b97c004".. oder darf man nicht die .toString() Methode benutzen?

0
ZaoDaDong 04.09.2017, 15:48
@paulissogay

Du gibtst am besten den absoluten Pfad zur Datei in "" an. Wenn du schon ein File-Objekt hast dann geht das auch mit fileObjekt.getAbsoluteFilePath();

1
paulissogay 04.09.2017, 16:09
@ZaoDaDong

Ja das habe ich, das File wird auch schon gefunden. Ich brauche halt den Binary Value vom Video.

0
ZaoDaDong 04.09.2017, 16:14
@paulissogay

ja, wie das geht, habe ich ja in der Antwort geschrieben. Die Methode will aber den FilePath und kein File - Objekt.

0
paulissogay 04.09.2017, 16:18
@ZaoDaDong

Das ist mein Code. Leider funktioniert es mit dem Path und mit deiner ersten Lösung nicht.

0
ZaoDaDong 04.09.2017, 16:23
@paulissogay

ahh, sorry, die Klasse Path wird benötigt, also brauchst du fileObjekt.toPath();

0
ZaoDaDong 04.09.2017, 16:32
@paulissogay

Ja, das sieht gut aus. Das Problem 401 ist wohl ein Problem mit der Resource. Du hast wohl keinen Zugriff darauf bzw. du musst dich erst noch authentifizieren.

0
ZaoDaDong 04.09.2017, 16:40
@paulissogay

versuchs mal statt String.valueOf(binaryValue); mit
Arrays.toString(binaryValue);

0
ZaoDaDong 04.09.2017, 16:50
@ZaoDaDong

Es läuft ja darauf hinaus, dass die Datei als Binary String in der URL übergeben wird. Wie der formatiert sein muss, das müsste man dann der API Dokumentation entnehmen.

0
paulissogay 04.09.2017, 16:51
@ZaoDaDong

Das klappt, mehr oder weniger. Ich bekomme jetzt eine Aufzählung von Zahlen ausgegeben (6, -111, -123, 34, 10, -39, -58,...), jedoch fehlt beim Ausgeben der Anfang des Strings (es werden mir also nur die Zahlen ausgegeben). https://hastebin.com/ivefiyadom.swift

0
ZaoDaDong 04.09.2017, 16:54
@paulissogay

Ich hätte erwartet, dass es dafür eine Utilityklasse in der Java-ApI gibt.

0
ZaoDaDong 04.09.2017, 17:14
@ZaoDaDong

Wenn nicht, dann musst du wohl durch das ByteArray Iterieren und die Werte in Binärzahlen umwandeln
Das geht mit


Integer.toBinaryString();



und dann wieder als String appenden. Dann ist trotzdem die Frage, wie das formatiert sein muss. Einfach in einem durch würde ich dann vermuten, wenn nichts weiter angegeben ist.

0
paulissogay 04.09.2017, 18:06
@ZaoDaDong

Das habe ich bis jetzt ausprobiert. Es läuft schon seit 15 min aber es tut sich nichts in der Console. Das Programm läuft aber weiter, jedoch sollte dies ja nicht allzu lange dauern, vorallem da das Video nur 3 Sekunden lang ist. 

byte[] binaryValue = Files.readAllBytes(video.toPath());this.urlParameters = "AccessToken=" + accessToken + "&filedata=";for(byte all : binaryValue) {
this.urlParameters = urlParameters+ Integer.toBinaryString(all);}

System.out.println(urlParameters);
0
paulissogay 04.09.2017, 18:16
@paulissogay

Es werden momentan die ganzen bytes durchgegangen. Aber das sind mehrere hundert tausend Stück. irgendwas läuft da falsch :D

0

Was möchtest Du wissen?