Diskuze: Délka videa
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 20 zpráv z 20.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Co třeba tohle:
private static final String filename = "c:/myvideo.mp4";
IContainer container = IContainer.make();
int result = container.open(filename, IContainer.Type.READ, null);
long duration = container.getDuration();
long fileSize = container.getFileSize();
Zcela okopírováno z prvního odkazu na googlu: http://stackoverflow.com/…ngth-in-java
Toto jsem už našel... Ale bohužel mi nejde importovat IContainer :/
Tak muj předešlý koment nefunguje... Ale toto v JavaFX ano:
public class Test extends Application {
private final String video = "C:\\myvideo.mp4";
private final File file = new File(video);
private Media media;
private MediaPlayer player;
@Override
public void start(Stage primaryStage) {
media = new Media(file.toURI().toString());
player = new MediaPlayer(media);
player.setOnReady(new Runnable() {
@Override
public void run() {
System.out.println("Delka: " + media.getDuration().toSeconds()+ " sec");
//player.play();
}
});
}
public static void main(String[] args) {
launch(args);
}
}
Ano toto opravdu funguje, ale kdyz se snazim ulozit tuto hodnotu do promene tak to nefunguje... Promenou mi to vypise prazdnou
Ahoj, jakým způsobem se snažíš uložit tu hodnotu do proměnné? Co jsem koukal, tak tady řešili stejný problém. Musíš jí ukládat v tom handleru onReady, protože ten objekt Media potřebuje nějaký čas na inicializaci.
After Creating the Media Object it needs some time to get fully initialized.
double delka;
player.setOnReady(new Runnable() {
@Override
public void run() {
delka = mediaPlayerIntro.getTotalDuration().toMillis();
}
});
Takhle to zkouším zkoušel jsem to dát i jako třídní proměnnou.... Ale nefunguje mi to porměnnou lze vypsat v té metodě setOnReady, ale nejde vypsat mimo ní...
Tak si ji schválně zkus vypsat až po nějakém čase. Jenom
experimentálně si dej do kódu nějaký sleep (třeba 1 vteřinu) a uvidíš,
že už tam ta proměnná bude.
Řešení je jednoduché. Prostě zajisti, aby kód pokračoval v tý metodě
run, kterou vyvolal event onReady.
Zkusil jsem to přes Thread.sleep(5000); a bohužel to nefunguje..
Ahoj, ted jsem si uvědomil, ze ten sleep je blbost. Ty to všechno je des v
hlavním vlákně, takže sleep je k ničemu. Tady pomůže pouze to, ze hodíš
výkonný kód do toho handleru onReady.
btw javaFX se da velmi dobře vystavět MVC architektura. Tady je vidět, ze
mícháš jabka s hruskama (věci z modelu do kontroléru). Zamýšlí se,
zda-li by to nešlo vymyslet lépe. Oddělit logiku od kontroléru.
Hele já bych potřeboval zjistit délku videa z tý metody onReady poté jí dosadit do metody setStopTime(), díky tomu budu moci naprogramovat metodu setOnEndOfMeida() a díky tomu říct programu co má dělat po skončení toho videa... O todle mi jde a moc nevím jak to uděla... Moc děkuji za tvoje rady
Ahoj, nechápu, proč to máš tak komplikovaně. Handler onEndOfMedia reaguje normálně, aniž by jsi nastavoval délku videa. Vyzkoušej si tento kus kódu:
Group root = new Group();
Media media = new Media(getClass().getResource("video.mp4").toExternalForm()); // Cesta k videu
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
mediaPlayer.setOnEndOfMedia(() -> System.out.println("Hotovo")); // Normálně se nastaví handler
MediaView mediaView = new MediaView(mediaPlayer);
root.getChildren().add(mediaView);
Scene scene= new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
Žádný nastavování délky videa není potřeba.
Ahoj, hele vyzkoušel jsem přesně tvůj kód a nefunguje mi :/
Aplikace žádnou chybu nevypíše, video se normálně přehraje ale nevypíše se "Hotovo"....
To je hodně divný. Mě to funguje normálně. Nemohl by tento kus kódu vyzkoušet ještě někdo jiný?
Už jsem nalezl problém.... Toto video nelze spustit v FX projektu ale pouze v obyčejném... Nevíš proč ?
Těžko říct. Není video jako video. Třeba je v nějakém divnem kódování, fakt nevím.
No nic tak se nedá asi nic dělat... Díky za pomoc 
Zobrazeno 20 zpráv z 20.