Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Napisy w określonym czasie
Forum PHP.pl > Forum > PHP
Tho
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?
blooregard
Osobna kolumna czas, albo nawet dwie: minuta i sekunda i po tych kolumnach szukać napisów.
Tho
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?
blooregard
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?
Tho
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 wink.gif . Nie jest konieczne w tym celu JS? Jeśli nie to oczywiście nie trzeba, ma być jak najprościej wink.gif.
blooregard
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.

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

Jeszcze jedno, jakiego typu dla kolumny 'napisy' użyć? char, varchar?
blooregard
CHAR to typ danych o stałej długości ciągu, więc VARCHAR będzie sensowniejszy.
Tho
Ok, a co z limitem znaków, jeśli tam tych znaków będzie bardzo dużo, co ustawić przy varchar w () ?
sebekzosw
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)
crocodillo
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
vee
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
blooregard
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.