Autor | Zpráva | ||
---|---|---|---|
dalik Profil |
Zdravím Vás,
potřeboval bych radu s javascriptem. Mám tento kód v php <audio loop="loop" autoplay="autoplay" id="song" ontimeupdate="updateTime()"> <source src="zvuk.mp3" /> </audio> <div id="songPlay" onclick="play('song')"><img src="button_play.png"/> </div> <div id="songPlayPause" onclick="playPause('song')"><img style="cursor:pointer;" src="button_stop.png"/></div> a tento JS: var activeSong; //Plays the song. Just pass the id of the audio element. function play(id){ //Sets the active song to the song being played. All other functions depend on this. activeSong = document.getElementById(id); //Plays the song defined in the audio tag. activeSong.play(); //Calculates the starting percentage of the song. var percentageOfVolume = activeSong.volume / 1; var percentageOfVolumeMeter = document.getElementById('volumeMeter').offsetWidth * percentageOfVolume; //Fills out the volume status bar. document.getElementById('volumeStatus').style.width = Math.round(percentageOfVolumeSlider) + "px"; } //Pauses the active song. function pause(){ activeSong.pause(); } //Does a switch of the play/pause with one button. function playPause(id){ //Sets the active song since one of the functions could be play. activeSong = document.getElementById(id); //Checks to see if the song is paused, if it is, play it from where it left off otherwise pause it. if (activeSong.paused){ activeSong.play(); playPause.setVisibility(ImageButton.VISIBLE); playPause.setVisibility(ImageButton.GONE); }else{ activeSong.pause(); playPause.setVisibility(ImageButton.GONE) playPause.setVisibility(ImageButton.VISIBLE) } } //Updates the current time function so it reflects where the user is in the song. //This function is called whenever the time is updated. This keeps the visual in sync with the actual time. function updateTime(){ var currentSeconds = (Math.floor(activeSong.currentTime % 60) < 10 ? '0' : '') + Math.floor(activeSong.currentTime % 60); var currentMinutes = Math.floor(activeSong.currentTime / 60); //Sets the current song location compared to the song duration. document.getElementById('songTime').innerHTML = currentMinutes + ":" + currentSeconds + ' / ' + Math.floor(activeSong.duration / 60) + ":" + (Math.floor(activeSong.duration % 60) < 10 ? '0' : '') + Math.floor(activeSong.duration % 60); //Fills out the slider with the appropriate position. var percentageOfSong = (activeSong.currentTime/activeSong.duration); var percentageOfSlider = document.getElementById('songSlider').offsetWidth * percentageOfSong; //Updates the track progress div. document.getElementById('trackProgress').style.width = Math.round(percentageOfSlider) + "px"; } function volumeUpdate(number){ //Updates the volume of the track to a certain number. activeSong.volume = number / 100; } //Changes the volume up or down a specific number function changeVolume(number, direction){ //Checks to see if the volume is at zero, if so it doesn't go any further. if(activeSong.volume >= 0 && direction == "down"){ activeSong.volume = activeSong.volume - (number / 100); } //Checks to see if the volume is at one, if so it doesn't go any higher. if(activeSong.volume <= 1 && direction == "up"){ activeSong.volume = activeSong.volume + (number / 100); } //Finds the percentage of the volume and sets the volume meter accordingly. var percentageOfVolume = activeSong.volume / 1; var percentageOfVolumeSlider = document.getElementById('volumeMeter').offsetWidth * percentageOfVolume; document.getElementById('volumeStatus').style.width = Math.round(percentageOfVolumeSlider) + "px"; } //Sets the location of the song based off of the percentage of the slider clicked. function setLocation(percentage){ activeSong.currentTime = activeSong.duration * percentage; } /* Gets the percentage of the click on the slider to set the song position accordingly. Source for Object event and offset: http://website-engineering.blogspot.com/2011/04/get-x-y-coordinates-relative-to-div-on.html */ function setSongPosition(obj,e){ //Gets the offset from the left so it gets the exact location. var songSliderWidth = obj.offsetWidth; var evtobj=window.event? event : e; clickLocation = evtobj.layerX - obj.offsetLeft; var percentage = (clickLocation/songSliderWidth); //Sets the song location with the percentage. setLocation(percentage); } //Set's volume as a percentage of total volume based off of user click. function setVolume(percentage){ activeSong.volume = percentage; var percentageOfVolume = activeSong.volume / 1; var percentageOfVolumeSlider = document.getElementById('volumeMeter').offsetWidth * percentageOfVolume; document.getElementById('volumeStatus').style.width = Math.round(percentageOfVolumeSlider) + "px"; } //Set's new volume id based off of the click on the volume bar. function setNewVolume(obj,e){ var volumeSliderWidth = obj.offsetWidth; var evtobj = window.event? event: e; clickLocation = evtobj.layerX - obj.offsetLeft; var percentage = (clickLocation/volumeSliderWidth); setVolume(percentage); } //Stop song by setting the current time to 0 and pausing the song. function stopSong(){ activeSong.currentTime = 0; activeSong.pause(); Potřeboval bych, aby když po kliknutí na tlačítko stop přestal hrát zvuk na všech podstránkách. Nyní je to tak, že kliknu na tlačitko stop - zvuk přestane hrát, ale jakmile přejdu na další podstránku, tak to zase hraje a musím znova klikat na stop. Děkuji za rady. |
||
peta Profil |
#2 · Zasláno: 30. 5. 2013, 09:19:20
Uloz si stav zvuku do cookies nebo session.
|
||
dalik Profil |
Můžeš mi prosím říct přesně, co a jak?
|
||
peta Profil |
#4 · Zasláno: 31. 5. 2013, 08:19:00
Protoze google prestalo fungovat?
JavaScript -- příklady » Vychytávky Javascriptu * Přečtení hodnoty cookie * Příklad rozsekání všech cookies do pole Abys mohl uchovat hodnotu mezi strankami, potrebujes ji ulozit. V js se daji pouzit cookies, v php se pouzivaji session nebo databaze. Najit googlem nebo tady na foru furu prikladu je pomerne snadne. Neni potreba to tu vypisovat. |
||
Časová prodleva: 11 let
|
0