Odtwarzacz w delphi - wyświetla filmy za szybko


(system) #1

witam!

Jestem bardzo początkujący w tym temacie. Napisałem bardzo prosty odtwarzacz multimedialny w delphi. Niestety filmy wyświetla mi w przyspieszonym tempie. Ktoś wie jak ten problem rozwiązać?

pozdrawiam!


(Fiołek) #2

Nie uwzględniasz czasu odstępów poszczególnymi klatkami, musisz to uwzględnić i powinno działać :wink:


(system) #3

a możesz mi podpowiedzieć jak to zrobić? znam dopiero podstawy i nie bardzo sam sobie radze jeszcze...


(Fiołek) #4

Musisz znać czas pomiędzy poszczególnymi klatkami. Jeśli go znasz to musisz poczekać tyle czasu ile powinieneś(Sleep na początek powinien wystarczyć, ale można to lepiej zrobić) i dopiero wtedy odrysować tą klatkę. Nie widzę tu większej filozofii.


(system) #5

wybacz ale ja na prawde jestem bardzo początkujący i wciąż nie rozumiem o czym mówisz.. :frowning: jeśli to nie problem to czy mógłbyś umieścić ten niezbędny kawałek kodu?

p.s. jak mam sprawdzić czas pomiędzy klatkami?


(Fiołek) #6

Ten czas musisz wczytać z pliku w którym jest dany film.

Nie podam Ci kawałka kodu, bo nie od tego tu jestem. Podałem rozwiązanie problemu.


(system) #7

Tylko że to nie rowiązuje mojego problemu.. :confused: nie proszę o cały program tylko o kazwałek kodu na który jeszcze jestem za słaby w tym temacie.. niestety nie każdy problem rozwiąże google.pl Od tego jest chyba forum właśnie..


(Kalin 93) #8

http://pvdtools.sourceforge.net/aviformat.txt

Dokumentacja formatu AVI, jest tam wzmianka o czasie pomiędzy klatkami.


(Fiołek) #9

Zacznijmy od tego co to za problem. Nie potrafisz wstrzymać wykonywania programu na x czasu. Ok, spytajmy wujka Google(zapytanie: Sleep Delphi, gdyż podałem jakiej funkcji trzeba szukać na początek), co otrzymujemy? A no takie wyniki. Co widzimy na pierwszym miejscu? A no opis funkcji Sleep na 4programmers.net, jest tam opisana funkcja Sleep dzięki czemu już wiemy jak działa i do czego służy. Podążając tym tropem(i moimi poprzednimi wiadomościami) musimy "załatwić" sobie czas pomiędzy poszczególnymi klatkami. Najprawdopodobniej musimy go wczytać z pliku. A więc biorzemy dokumentację tego formatu* i sprawdzamy gdzie jest "ukryty" czas pomiędzy poszczególnymi klatkami. Gdy już go sobie wczytamy i wyświetlimy klatkę(napiszemy wyświetlanie) musimy wstrzymać program(wywnioskowałem to z opisu funkcji i moich wiadomości). A więc po wyświetleniu dodajemy

Sleep(czasDoNastepnejKlatki);

i dzięki temu program poczeka z wyświetleniem.

* - niestety nie wiem co to za format i nie podam dokładniejszych wiadomości.

Czy to takie trudne było?


(system) #10

No właśnie.. czy to tak trudno czasami podać od razu rozwiązanie które ktoś potrzebuje a nie wciąż pisać google.pl itp ? chyba po to jest forum żeby sobie pomagać? dopiero w czwartym poście wspominasz mi o jakiejś funkcji sleep. Skoro jestem początkujący i ledwo co udało mi się zrobić śmieszny odtwarzacz to skąd mam wiedzieć o jakiejś funkcji sleep, czasie pomiędzy klatkami itp? Wybacz ale może dla Ciebie to bardzo proste bo wszystko wiesz.. ja niestety nie..


(Fiołek) #11

Mowa o funkcji Sleep jest już w moim drugim poście. Ja, gdybym nie wiedział o co chodzi wpisałbym w wyszukiwarkę tą nazwę dopisując do tego "Delphi". Od razu wszystko by się wyjaśniło. Czas pomiędzy poszczególnymi klatkami jest już omówiony w 1 pierwszym(!) poście. I nie próbuj mi wmówić, że rozwiązania nie podałem, poprostu nie lubię prowadzić za rączkę kogoś komu nie chce się nawet pomyśleć jak wykorzystać informacje podane wcześniej.

Jeśli piszesz odtwarzacz to powinieneś najpierw zaznajomić się z takimi pojęciami albo przynajmniej przejrzeć opis formatu(w którym to na pewno jest coś takiego) a nie od razu na forum lecieć. Nie powiedziałeś też, że nie wiesz co to jest ten "czas pomiędzy klatkami". Gdybyś to powiedział, pewnie bym wytłumaczył.

Nie lubię też podejścia "jestem początkujący i nic nie wiem, macie mi podsunąć rozwiązanie na tacy", a gdy się naprowadzi kogoś to temu jeszcze mało. A gdy się nie poda rozwiązania to "Mamo! Oni mi nie chcą powiedzieć jak to zrobić! Oni są be i fuj! To forum jest złe bo mi nie napisali tego odtwarzacza.".

Na Twoim miejscu najpierw bym poszukał, dopiero spytał na forum, a jeśli miałbym jeszcze jakieś wątpliwości to sformułowałbym bardzo KONKRETNE pytanie, a nie "nie wiem o czym piszesz, daj mi kod to sobie pójdę".