// FOR DESKTOP MEDIA AUDIO PLAYER
$(function () {
var playerTrack = $("#player-track"), bgArtwork = $('#bg-artwork'), bgArtworkUrl, albumName = $('#album-name'),
trackName = $('#track-name'), albumArt = $('#album-art'), sArea = $('#s-area'), seekBar = $('#seek-bar'),
trackTime = $('#track-time'), insTime = $('#ins-time'), sHover = $('#s-hover'),
playPauseButton = $("#play-pause-button"), i = playPauseButton.find('i'), tProgress = $('#current-time'),
tTime = $('#track-length'), seekT, seekLoc, seekBarPos, cM, ctMinutes, ctSeconds, curMinutes, curSeconds,
durMinutes, durSeconds, playProgress, bTime, nTime = 0, buffInterval = null, tFlag = false,
albums = ['Dawn', 'Me & You', 'Electro Boy', 'Home', 'Proxy (Original Mix)'],
trackNames = ['Skylike - Dawn', 'Alex Skrindo - Me & You', 'Kaaze - Electro Boy', 'Jordan Schor - Home', 'Martin Garrix - Proxy'],
albumArtworks = ['_1', '_2', '_3', '_4', '_5'],
trackUrl = [$('#sturl').val()],
playPreviousTrackButton = $('#play-previous'), playNextTrackButton = $('#play-next'), currIndex = -1;
function playPause() {
setTimeout(function () {
if (audio.paused) {
playerTrack.addClass('active');
albumArt.addClass('active');
checkBuffering();
i.attr('class', 'fas fa-pause');
audio.play();
} else {
playerTrack.removeClass('active');
albumArt.removeClass('active');
clearInterval(buffInterval);
albumArt.removeClass('buffering');
i.attr('class', 'fas fa-play');
audio.pause();
}
}, 300);
}
function showHover(event) {
seekBarPos = sArea.offset();
seekT = event.clientX - seekBarPos.left;
seekLoc = audio.duration * (seekT / sArea.outerWidth());
sHover.width(seekT);
cM = seekLoc / 60;
ctMinutes = Math.floor(cM);
ctSeconds = Math.floor(seekLoc - ctMinutes * 60);
if ((ctMinutes < 0) || (ctSeconds < 0))
return;
if ((ctMinutes < 0) || (ctSeconds < 0))
return;
if (ctMinutes < 10)
ctMinutes = '0' + ctMinutes;
if (ctSeconds < 10)
ctSeconds = '0' + ctSeconds;
if (isNaN(ctMinutes) || isNaN(ctSeconds))
insTime.text('--:--');
else
insTime.text(ctMinutes + ':' + ctSeconds);
insTime.css({'left': seekT, 'margin-left': '-21px'}).fadeIn(0);
}
function hideHover() {
sHover.width(0);
insTime.text('00:00').css({'left': '0px', 'margin-left': '0px'}).fadeOut(0);
}
function playFromClickedPos() {
audio.currentTime = seekLoc;
seekBar.width(seekT);
hideHover();
}
function updateCurrTime() {
nTime = new Date();
nTime = nTime.getTime();
if (!tFlag) {
tFlag = true;
trackTime.addClass('active');
}
curMinutes = Math.floor(audio.currentTime / 60);
curSeconds = Math.floor(audio.currentTime - curMinutes * 60);
durMinutes = Math.floor(audio.duration / 60);
durSeconds = Math.floor(audio.duration - durMinutes * 60);
playProgress = (audio.currentTime / audio.duration) * 100;
if (curMinutes < 10)
curMinutes = '0' + curMinutes;
if (curSeconds < 10)
curSeconds = '0' + curSeconds;
if (durMinutes < 10)
durMinutes = '0' + durMinutes;
if (durSeconds < 10)
durSeconds = '0' + durSeconds;
if (isNaN(curMinutes) || isNaN(curSeconds))
tProgress.text('00:00');
else
tProgress.text(curMinutes + ':' + curSeconds);
if (isNaN(durMinutes) || isNaN(durSeconds))
tTime.text('00:00');
else
tTime.text(durMinutes + ':' + durSeconds);
if (isNaN(curMinutes) || isNaN(curSeconds) || isNaN(durMinutes) || isNaN(durSeconds))
trackTime.removeClass('active');
else
trackTime.addClass('active');
seekBar.width(playProgress + '%');
if (playProgress == 100) {
i.attr('class', 'fa fa-play');
seekBar.width(0);
tProgress.text('00:00');
albumArt.removeClass('buffering').removeClass('active');
clearInterval(buffInterval);
}
}
function checkBuffering() {
clearInterval(buffInterval);
buffInterval = setInterval(function () {
if ((nTime == 0) || (bTime - nTime) > 1000)
albumArt.addClass('buffering');
else
albumArt.removeClass('buffering');
bTime = new Date();
bTime = bTime.getTime();
}, 100);
}
function selectTrack(flag) {
if (flag == 0 || flag == 1)
++currIndex;
else
--currIndex;
if ((currIndex > -1) && (currIndex < albumArtworks.length)) {
if (flag == 0)
i.attr('class', 'fa fa-play');
else {
albumArt.removeClass('buffering');
i.attr('class', 'fa fa-pause');
}
seekBar.width(0);
trackTime.removeClass('active');
tProgress.text('00:00');
tTime.text('00:00');
currAlbum = albums[currIndex];
currTrackName = trackNames[currIndex];
currArtwork = albumArtworks[currIndex];
audio.src = trackUrl[currIndex];
nTime = 0;
bTime = new Date();
bTime = bTime.getTime();
if (flag != 0) {
audio.play();
playerTrack.addClass('active');
albumArt.addClass('active');
clearInterval(buffInterval);
checkBuffering();
}
albumName.text(currAlbum);
trackName.text(currTrackName);
albumArt.find('img.active').removeClass('active');
$('#' + currArtwork).addClass('active');
bgArtworkUrl = $('#' + currArtwork).attr('src');
bgArtwork.css({'background-image': 'url(' + bgArtworkUrl + ')'});
} else {
if (flag == 0 || flag == 1)
--currIndex;
else
++currIndex;
}
}
function initPlayer() {
audio = new Audio();
selectTrack(0);
audio.loop = true;
playPauseButton.on('click', playPause);
sArea.mousemove(function (event) {
showHover(event);
});
sArea.mouseout(hideHover);
sArea.on('click', playFromClickedPos);
$(audio).on('timeupdate', updateCurrTime);
playPreviousTrackButton.on('click', function () {
selectTrack(-1);
});
playNextTrackButton.on('click', function () {
selectTrack(1);
});
}
initPlayer();
});
// FOR MOBILE OR TAB MEDIA AUDIO PLAYER
$(function () {
var playerTrack = $("#player-track"), bgArtwork = $('#bg-artwork'), bgArtworkUrl, albumName = $('#album-name'),
trackName = $('#track-name'), albumArt = $('#album-art'), sArea = $('#s-area'), seekBar = $('#seek-bar'),
trackTime = $('#track-time'), insTime = $('#ins-time'), sHover = $('#s-hover'),
playPauseButton = $("#play-pause-button2"), i = playPauseButton.find('i'), tProgress = $('#current-time'),
tTime = $('#track-length'), seekT, seekLoc, seekBarPos, cM, ctMinutes, ctSeconds, curMinutes, curSeconds,
durMinutes, durSeconds, playProgress, bTime, nTime = 0, buffInterval = null, tFlag = false,
albums = ['Dawn', 'Me & You', 'Electro Boy', 'Home', 'Proxy (Original Mix)'],
trackNames = ['Skylike - Dawn', 'Alex Skrindo - Me & You', 'Kaaze - Electro Boy', 'Jordan Schor - Home', 'Martin Garrix - Proxy'],
albumArtworks = ['_1', '_2', '_3', '_4', '_5'],
trackUrl = [$('#sturl').val()],
playPreviousTrackButton = $('#play-previous'), playNextTrackButton = $('#play-next'), currIndex = -1;
function playPause() {
setTimeout(function () {
if (audio.paused) {
playerTrack.addClass('active');
albumArt.addClass('active');
checkBuffering();
i.attr('class', 'fas fa-pause');
audio.play();
} else {
playerTrack.removeClass('active');
albumArt.removeClass('active');
clearInterval(buffInterval);
albumArt.removeClass('buffering');
i.attr('class', 'fas fa-play');
audio.pause();
}
}, 300);
}
playPause();
function showHover(event) {
seekBarPos = sArea.offset();
seekT = event.clientX - seekBarPos.left;
seekLoc = audio.duration * (seekT / sArea.outerWidth());
sHover.width(seekT);
cM = seekLoc / 60;
ctMinutes = Math.floor(cM);
ctSeconds = Math.floor(seekLoc - ctMinutes * 60);
if ((ctMinutes < 0) || (ctSeconds < 0))
return;
if ((ctMinutes < 0) || (ctSeconds < 0))
return;
if (ctMinutes < 10)
ctMinutes = '0' + ctMinutes;
if (ctSeconds < 10)
ctSeconds = '0' + ctSeconds;
if (isNaN(ctMinutes) || isNaN(ctSeconds))
insTime.text('--:--');
else
insTime.text(ctMinutes + ':' + ctSeconds);
insTime.css({'left': seekT, 'margin-left': '-21px'}).fadeIn(0);
}
function hideHover() {
sHover.width(0);
insTime.text('00:00').css({'left': '0px', 'margin-left': '0px'}).fadeOut(0);
}
function playFromClickedPos() {
audio.currentTime = seekLoc;
seekBar.width(seekT);
hideHover();
}
function updateCurrTime() {
nTime = new Date();
nTime = nTime.getTime();
if (!tFlag) {
tFlag = true;
trackTime.addClass('active');
}
curMinutes = Math.floor(audio.currentTime / 60);
curSeconds = Math.floor(audio.currentTime - curMinutes * 60);
durMinutes = Math.floor(audio.duration / 60);
durSeconds = Math.floor(audio.duration - durMinutes * 60);
playProgress = (audio.currentTime / audio.duration) * 100;
if (curMinutes < 10)
curMinutes = '0' + curMinutes;
if (curSeconds < 10)
curSeconds = '0' + curSeconds;
if (durMinutes < 10)
durMinutes = '0' + durMinutes;
if (durSeconds < 10)
durSeconds = '0' + durSeconds;
if (isNaN(curMinutes) || isNaN(curSeconds))
tProgress.text('00:00');
else
tProgress.text(curMinutes + ':' + curSeconds);
if (isNaN(durMinutes) || isNaN(durSeconds))
tTime.text('00:00');
else
tTime.text(durMinutes + ':' + durSeconds);
if (isNaN(curMinutes) || isNaN(curSeconds) || isNaN(durMinutes) || isNaN(durSeconds))
trackTime.removeClass('active');
else
trackTime.addClass('active');
seekBar.width(playProgress + '%');
if (playProgress == 100) {
i.attr('class', 'fa fa-play');
seekBar.width(0);
tProgress.text('00:00');
albumArt.removeClass('buffering').removeClass('active');
clearInterval(buffInterval);
}
}
function checkBuffering() {
clearInterval(buffInterval);
buffInterval = setInterval(function () {
if ((nTime == 0) || (bTime - nTime) > 1000)
albumArt.addClass('buffering');
else
albumArt.removeClass('buffering');
bTime = new Date();
bTime = bTime.getTime();
}, 100);
}
function selectTrack(flag) {
if (flag == 0 || flag == 1)
++currIndex;
else
--currIndex;
if ((currIndex > -1) && (currIndex < albumArtworks.length)) {
if (flag == 0)
i.attr('class', 'fa fa-play');
else {
albumArt.removeClass('buffering');
i.attr('class', 'fa fa-pause');
}
seekBar.width(0);
trackTime.removeClass('active');
tProgress.text('00:00');
tTime.text('00:00');
currAlbum = albums[currIndex];
currTrackName = trackNames[currIndex];
currArtwork = albumArtworks[currIndex];
audio.src = trackUrl[currIndex];
nTime = 0;
bTime = new Date();
bTime = bTime.getTime();
if (flag != 0) {
audio.play();
playerTrack.addClass('active');
albumArt.addClass('active');
clearInterval(buffInterval);
checkBuffering();
}
albumName.text(currAlbum);
trackName.text(currTrackName);
albumArt.find('img.active').removeClass('active');
$('#' + currArtwork).addClass('active');
bgArtworkUrl = $('#' + currArtwork).attr('src');
bgArtwork.css({'background-image': 'url(' + bgArtworkUrl + ')'});
} else {
if (flag == 0 || flag == 1)
--currIndex;
else
++currIndex;
}
}
function initPlayer() {
audio = new Audio();
selectTrack(0);
audio.loop = true;
playPauseButton.on('click', playPause);
sArea.mousemove(function (event) {
showHover(event);
});
sArea.mouseout(hideHover);
sArea.on('click', playFromClickedPos);
$(audio).on('timeupdate', updateCurrTime);
playPreviousTrackButton.on('click', function () {
selectTrack(-1);
});
playNextTrackButton.on('click', function () {
selectTrack(1);
});
}
initPlayer();
}); Radyoda Play Pause Sorunu Bakabilir misiniz?
1
●32
- 08-08-2021, 11:04:19Otomatik siteye girerken radyo açılıyor ama ikon play de kalıyor pause işareti olmuyor. Js kodu aşağıda bunu nasıl sağlarım ?