Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Napisy w określonym czasie, + przycisk PLAY
Tho
post
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


Chciałbym diva play, po kliknięciu którego wyświetli mi wybrane napisy z bazy

Ale właśnie... Jak zrobić, by row w bazie wyglądał tak jak plik srt, by skrypt wiedział które napisy wyświetlić w której sekundzie?

Oczywiście powinna być tabela napisy z kolumnami takimi jak tytuł i treść, tylko jak zrobić by treść była napisana w taki sposób by było wiadomo w której sekundzie wyświetlić który fragment?
([1:03] napis z minuta i trzy sekundy
[1:04]napis z minuta i cztery sekundy)

Jak to zrobić najprościej?

Ten post edytował Tho 12.10.2011, 15:19:37
Go to the top of the page
+Quote Post
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Osobna kolumna czas, albo nawet dwie: minuta i sekunda i po tych kolumnach szukać napisów.
Go to the top of the page
+Quote Post
Tho
post
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


No, ok - dzięki, myśle że to będzie dobre, ale co z resztą? Wykorzystać javascript? Jak powinno wyglądać zapytanie trworzące taką tabelę? Wydaje mi się dziwne tworzenie dwóch kolumn minuta i sekunda? Po co?

Ten post edytował Tho 12.10.2011, 15:53:18
Go to the top of the page
+Quote Post
blooregard
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat(Tho @ 12.10.2011, 16:52:33 ) *
No, ok - dzięki, myśle że to będzie dobre, ale co z resztą? Wykorzystać javascript? Jak powinno wyglądać zapytanie trworzące taką tabelę? Wydaje mi się dziwne tworzenie dwóch kolumn minuta i sekunda? Po co?

Po to, że masz dwie oddzielne wartości typu INT, a nie jakieś dziwne varchary z dwukropkami itp., które potem musisz parsować w skrypcie.

A co do reszty: jeśli dobrze zrozumiałem i chcesz "zaciągać" napisy z bazy w trakcie odtwarzania filmu na podstawie aktualnego czasu - to mam pytanie: po co?
Nie lepiej od razu wczytać wszystkie napisy jednym zapytaniem do jakiejś tabeli i potem jechać z tej tabeli?
Go to the top of the page
+Quote Post
Tho
post
Post #5





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


Chce żeby wyświetlały się w danych sekundach, LIVE, a nie wszystkie naraz z tym że tu chodzi o same napisy, filmu w to nie mieszajmy (IMG:style_emoticons/default/wink.gif) . Nie jest konieczne w tym celu JS? Jeśli nie to oczywiście nie trzeba, ma być jak najprościej (IMG:style_emoticons/default/wink.gif) .
Go to the top of the page
+Quote Post
blooregard
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




W takim wypadku JS będzie faktycznie niezbędny. Musisz napisać funkcję, która asynchronicznie (Ajax) wywołuje skrypt PHP zaczytujący rekord z tabeli z napisami na podstawie przesłanych argumentów (czyli minuty i sekundy filmu) i zwraca napis odpowiadający temu czasowi.

Go to the top of the page
+Quote Post
Tho
post
Post #7





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


Myślałeś że chce wyświetlić te napisy jako "plakat"? (IMG:style_emoticons/default/smile.gif) To po co byłyby mi czasy? Od początku chyba jasno się wyrażałem. (IMG:style_emoticons/default/tongue.gif)

Jeszcze jedno, jakiego typu dla kolumny 'napisy' użyć? char, varchar?
Go to the top of the page
+Quote Post
blooregard
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




CHAR to typ danych o stałej długości ciągu, więc VARCHAR będzie sensowniejszy.
Go to the top of the page
+Quote Post
Tho
post
Post #9





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


Ok, a co z limitem znaków, jeśli tam tych znaków będzie bardzo dużo, co ustawić przy varchar w () ?
Go to the top of the page
+Quote Post
sebekzosw
post
Post #10





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


pobierasz ajaxem napisy do tablicy, gdzie indeksem tablicy będzie czas w sekundach po czym w js szukasz tablicy z indeksem za pomocą setInterval ustawionym na wykonywanie co sekundę. Jeżeli takowy indeks istnieje w tablicy to wyświetlasz jego wartość (czyli konkretny tekst) w wybranym np divie.

Najlepiej jest dać dane typu TEXT moim zdaniem - CHAR odpada bo muszą mieć konkretną długość znaków, VARCHAR musi mieć limit np 200 znaków - a nie wiadomo czy dana kwestia nie będzie dłuższa niż 200 znaków (trzeba zakładać różne prawdopodobieństwa)

Ten post edytował sebekzosw 12.10.2011, 19:04:39
Go to the top of the page
+Quote Post
crocodillo
post
Post #11





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

Ostrzeżenie: (0%)
-----


Cytat(blooregard @ 12.10.2011, 17:18:58 ) *
W takim wypadku JS będzie faktycznie niezbędny. Musisz napisać funkcję, która asynchronicznie (Ajax) wywołuje skrypt PHP zaczytujący rekord z tabeli z napisami na podstawie przesłanych argumentów (czyli minuty i sekundy filmu) i zwraca napis odpowiadający temu czasowi.

Z tym ajaxem to trzeba troszkę uważać i pobierać napisy z kilkusekundowym wyprzedzeniem, bo inaczej będą się wyświetlały z opóźnieniem, wszystko zależy od obciążenia sieci. Ja bym raczej sugerował załadowanie wszystkich napisów do tablicy zamiast wykorzystywać do tego ajax, a jeśli napisów jest zbyt dużo, to podzielić je na segmenty i pobierać segmentami, ale to oczywiście już troszeczkę bardziej skomplikowane
Go to the top of the page
+Quote Post
vee
post
Post #12





Grupa: Zarejestrowani
Postów: 64
Pomógł: 5
Dołączył: 16.08.2011

Ostrzeżenie: (0%)
-----


pobierać np. pierwsze 200 kwestii i sprawdzić czas, kiedy występuje ostatnia z nich, w 3/4 tego czasu załadować na wszelki wypadek kolejne 200 kwestii i tak dalej
Go to the top of the page
+Quote Post
blooregard
post
Post #13


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat(vee @ 13.10.2011, 08:42:01 ) *
pobierać np. pierwsze 200 kwestii i sprawdzić czas, kiedy występuje ostatnia z nich, w 3/4 tego czasu załadować na wszelki wypadek kolejne 200 kwestii i tak dalej


Takie rozwiązanie jest ok, dopóki przykładowo masz w tablicy napisy do np. pierwszych 20 minut filmu, a user nagle przeskoczy do powiedzmy 25 minuty.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 23:26