• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zrobić to co Pan MIrosław przy sliderze?

VPS Starter Arubacloud
0 głosów
469 wizyt
pytanie zadane 8 lipca 2015 w JavaScript przez KaskiPL Początkujący (330 p.)

Pan Mirosław użył m.in takich polećeń: var numer = Math.floor(Math.random()*5)+1; oraz
    function zmienslajd()
            {
                numer++; if (numer>5) numer=1;
                
                var plik = "<img src=\"slajdy/slajd" + numer + ".png\" />";
                
                document.getElementById("slider").innerHTML = plik;
                $("#slider").fadeIn(500);
                
                timer1 = setTimeout("zmienslajd()", 5000);
                timer2 = setTimeout("schowaj()", 4500);
            
            }

Próbuje zrobić automatyczne przełączanie utworu MP3 (po skończeniu piosenki) i manualene (przełączanie przez użytkownika). Piosenki mam w folderze "piosenki" i wszystkie noszą nazwy: "piosenka1", "piosenka2"... i aż do 5 (piosenka5 jest ostatnia). Nieudolnie próbowałem przekształcić zmienną "plik" by brała folder "piosenki" oraz frazę "piosenka" i dodawała numer, i format (mp3). Z opcjami PLAY/PAUSE dałem rade, ale nie mogę zrobić opcji BACK i NEXT.

Może coś źle robię? Proszę o pomoc. Powiedcie mi co zrobić, nakierujecie mnie, albo pokażci jak to musi być, jak wy byście to zrobili.

1 odpowiedź

+3 głosów
odpowiedź 8 lipca 2015 przez Comandeer Guru (599,730 p.)
wybrane 12 lipca 2015 przez KaskiPL
 
Najlepsza
Masz już jakiś kod?
komentarz 8 lipca 2015 przez KaskiPL Początkujący (330 p.)

Próbowałem tak:

 

<!DOCTYPE HTML>
<html lang="pl">
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    
    <title>muzyka test</title>
    
    
    
    <script type="text/javascript">
    
        var muzyka=new Audio("piosenki/piosenka1.mp3");
        var timer1=0;
        var timer2=0;
        
        function start()
        {
            muzyka.play();
            timer1=setTimeout("()",muzyka.length);
        }
        
        function stop()
        {
            muzyka.pause();
        }
        
        
            
    </script>
    
    
        
</head>

<body>

        <input type="button" value="PLAY" onclick="start()" />
        <input type="button" value="STOP" onclick="stop()" />

</body>
</html>

 

Robiłem na podstawie tego:

https://www.youtube.com/watch?v=5-BuP25Cmo8

Ale chce to uzyskać:

http://www.premiumbeat.com/royalty_free_music/songs/mooove-your-hips-shout.

komentarz 8 lipca 2015 przez Comandeer Guru (599,730 p.)
 timer1=setTimeout("()",muzyka.length); 

Nie ma czegoś takiego, jak audio.length - jak już to jest audio.duration, czyli liczba sekund trwania muzyki (a więc i tak trzeba by to przemnożyć przez 1000, żeby wsadzić do timera).

Zamiast takiego czegoś raczej proponuję przypinać się pod zdarzenie ended danego pliku dźwiękowego i wtedy zmieniać na inny.

komentarz 8 lipca 2015 przez KaskiPL Początkujący (330 p.)

var plik = "<img src=\"slajdy/slajd" + numer + ".png\" />";  Pan Zelent zrobił taki i samo mu brało slajdy, a ja chce zrobić tak: var plik = "<img src=\"piosenki/piosenka" + numer + ".mp3\" />"; tylko to nie działa; img czego chyba zamienić ale na co?

komentarz 8 lipca 2015 przez Comandeer Guru (599,730 p.)
new Audio("piosenki/piosenka1.mp3"); 

To jest Twój plik - w kodzie HTML nie ma nic. Dostajesz gotowy obiekt Audio i na nim pracujesz. Możesz sobie go odtworzyć przy pomocy audio.play

komentarz 8 lipca 2015 przez KaskiPL Początkujący (330 p.)

Ale to wtedy puszczam jeden utwór, a jak zrobić tak by je zmieniać? Jak zrobić tak by skrypt sam brał piosenkę z foldera i ją odtwarzał, a potem kolejną i odpoczątku w kółko? Jak zrobić taki zbiór piosenek.

Próbowałem opcji auto.play ale nie zadziałał mi. Zapisałem to tak:
new Audio("piosenki/piosenka1.mp3");  
        function start()
        {
            audio.play;           
        }

Wcześniej odnosiłem się do zmiennej "muzyka" w której było : new Audio("piosenki/piosenka1.mp3");   oraz funkcje "start()" i "stop()". Zawierały one polecenia: muzyka.play() i muzyka.pause().

 

komentarz 8 lipca 2015 przez Comandeer Guru (599,730 p.)

Musisz zrobić tablicę obiektów Audio

Co do odpalenia dźwięku: zrób analogicznie do tego muzyka.play()

komentarz 8 lipca 2015 przez KaskiPL Początkujący (330 p.)

Czyli new Audio("piosenki/piosenka1.mp3"); zamknąć w funkcji?

Jak zrobić tą tablice obiektów audio?

komentarz 8 lipca 2015 przez Comandeer Guru (599,730 p.)
[
    new Audio('plik1.mp3')
    ,new Audio('plik2.mp3')
   ,new Audio('plik3.mp3')
]

 

komentarz 9 lipca 2015 przez KaskiPL Początkujący (330 p.)

A da się zrobić podobnie jak Pan Zelent tylko zamiast slajdów będzie się piosenka zmieniać?

 numer++; if (numer>5) numer=1;              
 var plik = "<img src=\"slajdy/slajd" + numer + ".png\" />";

Jest taka komenda, "po skończeniu", bym nie musiał dodawać czasu? Tylko jak się jedna piosenka skończy to włącza się druga.

komentarz 9 lipca 2015 przez Schizohatter Nałogowiec (39,600 p.)

Jest. Napisał o niej @Comandeer. Jest to zdarzenie .ended (zobacz sobie parę komentarzy wyżej). Jako callback tego wydarzenia podajesz funkcję, która zwiększy "licznik" o 1 i odtworzy plik znajdujący się w tablicy plików audio, pod kluczem/offsetem o wartości licznika.

Czyli na początku licznik = 0 i odtwarzasz tablica[licznik]. Po zakończeniu utworu robisz licznik += 1 (++licznik) i znowu odtwarzasz tablica[licznik].

komentarz 9 lipca 2015 przez KaskiPL Początkujący (330 p.)
A mogę Cię poprosić o jakiś szablon (na którym mógłbym się wzorować), bo nie zbyt wiem jak mam to zrobić? Jeśli to nie problem...
komentarz 9 lipca 2015 przez Comandeer Guru (599,730 p.)
var audios = [
	new Audio('plik1.mp3')
	,new Audio('plik2.mp3')
	,new Audio('plik3.mp3')
]
,playCurrent = function(i)
{
	var audio = audios[i];
	
	if(audio === undefined)
		audio = audios[i = 0];
	
	audio.addEventListener('ended', function f(e)
	{
		playCurrent(++i);
		audio.removeEventListener('ended', f, false);
	}, false);
};

playCurrent(0);

Pisane z palca, niekoniecznie musi działać.

komentarz 10 lipca 2015 przez KaskiPL Początkujący (330 p.)
No trochę coś nie poszło... a do jakiej funkcji mam się odwołać by to uruchomić?
komentarz 10 lipca 2015 przez Comandeer Guru (599,730 p.)
A konsola coś rzuca? Ten kod w sumie powinien być samowystarczalny
komentarz 10 lipca 2015 przez KaskiPL Początkujący (330 p.)
-SyntaxError: unterminated string literal test%20muzyki.html:15:34
-SyntaxError: function statement requires a name
komentarz 10 lipca 2015 przez Comandeer Guru (599,730 p.)
Masz jakiś nieprawidłowy zamknięty string - pokaż może kod.
komentarz 11 lipca 2015 przez KaskiPL Początkujący (330 p.)
<!DOCTYPE HTML>
<html lang="pl">
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    
    <title>muzyka test</title>
    
    
    
    <script type="text/javascript">
    
    var audios =
    [
        new Audio('piosenki/piosenka1.mp3')
        new Audio(piosenki/piosenka2.mp3'),
        new Audio('piosenki/piosenka3.mp3'),
    ]
    ,playCurrent= function(i)
    {
        var audio = audios[i];
        
        if(audio === undefined)
            audio = audios[i = 0];
        
        audio.addEventListener('ended', function f(e)
        {
            playCurrent(++i);
            audio.removeEventListener('ended', f, false);
        }, false);
    };

    playCurrent(0);
            
        
            
    </script>
    
    
        
</head>

<body>

        <input type="button" value="PLAY" onclick="function(i)" />
        <input type="button" value="STOP" onclick="stop()" />

</body>
</html>
komentarz 11 lipca 2015 przez Comandeer Guru (599,730 p.)

Przy drugim Audio brakuje apostrofu na początku nazwy pliku.

komentarz 11 lipca 2015 przez KaskiPL Początkujący (330 p.)

Przy tym:
audio =audios[i = 0];
czy:
audio.removeEventListener('ended', f, false);
lub:
 audio.addEventListener('ended', function f(e)

????? Próbowałem tak i tak, ale po zapisaniu i odświeżeniu strony nic się nie dzieje. Nie wiem czy mam podpiąć fynkcje do jakiegoś przycisku czy co?

komentarz 11 lipca 2015 przez Comandeer Guru (599,730 p.)

Przy tym:

 new Audio(piosenki/piosenka2.mp3'),

Skoro praktycznie wgl nie ogarniasz JS, to czemu nie skorzystasz z jakiegoś gotowca? Np. http://www.script-tutorials.com/html5-audio-player-with-playlist/

komentarz 12 lipca 2015 przez KaskiPL Początkujący (330 p.)
Ostatnio jak prosiłem o skrypt rozwijania i zwijania (mając na uwadzę że to tylko kilka linijek) to spotkałem się z bardzo ostrą reakcją... Sam wiesz czemu staram się unikać proszenia o gotowce. Ale dzięki za wyrozumiałość i cierpliwość.
komentarz 12 lipca 2015 przez Schizohatter Nałogowiec (39,600 p.)
Używasz edytora, który posiada kolorowanie składni? Wtedy można bardzo łatwo wyłapać takie błędy.
komentarz 13 lipca 2015 przez KaskiPL Początkujący (330 p.)
Używam notepad++. Jak znasz lepszy to mi podaj.

Podobne pytania

0 głosów
1 odpowiedź 161 wizyt
pytanie zadane 1 stycznia 2016 w HTML i CSS przez Jakub Wróbel Użytkownik (920 p.)
0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 10 stycznia 2020 w HTML i CSS przez FilOON Użytkownik (680 p.)
+3 głosów
4 odpowiedzi 2,776 wizyt
pytanie zadane 13 grudnia 2016 w Offtop przez BambusPL Początkujący (420 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...