Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 26.07.2011 Ostrzeżenie: (20%)
|
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 |
|
|
|
![]() |
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.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 26.07.2011 Ostrzeżenie: (20%)
|
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 |
|
|
|
Post
#4
|
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź |
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? |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 26.07.2011 Ostrzeżenie: (20%)
|
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) .
|
|
|
|
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.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 26.07.2011 Ostrzeżenie: (20%)
|
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? |
|
|
|
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.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 26.07.2011 Ostrzeżenie: (20%)
|
Ok, a co z limitem znaków, jeśli tam tych znaków będzie bardzo dużo, co ustawić przy varchar w () ?
|
|
|
|
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 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 44 Dołączył: 31.07.2011 Skąd: wrocław Ostrzeżenie: (0%)
|
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 |
|
|
|
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
|
|
|
|
Post
#13
|
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź |
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. |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 08:01 |