https://share.policygenius.com/Andre2
coinbase.com/join/jackso_wrj?src=android-link
https://distrokid.com/vip/seven/1207040
GetUpside is an app that gives you cash back...
ABC AND AMERICAN IDOL OWN ALL RIGHTS TO THIS VIDEO
If you are a contestant and you want your video deleted please contact my email on my channel or twitter or instagram....
Hotrod - Same Ole Sh** Prod. By @topdre @DrumMajorsATL 🎥 @BedTalkPodcast x #HOTROD #outnow #Pressure #wholelotta #DMATL
#Hotrod...
Hotrod - Bend It Ova Prod. By
DRUM MAJORS ATL
Keep Up !!!
FOLLOW IG :
@hot_rodd_plugged_in
@dmatlhotrod
@upthruthereent
My Producers
@drummajorsatl
@1dmatl
Twitter:...
Drum Majors ATL DJ Khaled Type Beat
Purchase your beats today #Myflashstore #Beatstars #Youtube
Drummajorsatl@gmail.com
www.dmatl.com
All beats copyrighted
Provided to YouTube by DistroKid
Lazy · Baby Gloxk
Lazy
℗ DRUM MAJORS ATL, LLC
Released on: 2024-12-09
Auto-generated by YouTube.
Moolah Jetson Ft Drum Majors ATL - Spend Lil Bit Prod By Zaytoven . #Notricking @Drummajorsatl @dagr8_tyb #Hoodclassics.
Hotrod Ft Topdre "Plugged In Two "
http://www.beatstars.com/song/hotrod-ft-topdre-plugged-in-2-914709
https://drummajorsatl.bandcamp.com/track/plugged-in-2...




');
// Reset to default theme
applyThemeColor('#1db954');
}
// Use the audioUrl from track data if available, otherwise construct it
// The audioUrl comes from JavaScript-constructed URL with proper module path
var streamUrl;
if (track.audioUrl && track.audioUrl.length > 10) {
streamUrl = track.audioUrl;
console.log('jPlayer Mini Player: Using provided audioUrl:', streamUrl);
} else {
// Fallback: construct URL using module URL and track ID
streamUrl = jamroomUrl + '/' + jrAudioModuleUrl + '/stream/audio_file/' + trackId + '/key=1/file.mp3';
console.log('jPlayer Mini Player: Constructed stream URL from ID:', trackId);
console.log('jPlayer Mini Player: Stream URL:', streamUrl);
}
// Load media and play - like jrAudio_button.tpl
miniPlayer.jPlayer("clearMedia");
miniPlayer.jPlayer("setMedia", {
mp3: streamUrl
});
miniPlayer.jPlayer("play")
// Generate progress waveform (will start after audio begins playing)
setTimeout(function() {
generateProgressWaveform();
}, 500);
// Show mini player
$('#mini-player').addClass('active').css('transform', 'translateY(0)');
console.log('jPlayer Mini Player: Playing');
}
};
// Handle window resize for waveform canvases
$(window).on('resize', function() {
if (waveformCanvas) {
waveformCanvas.width = waveformCanvas.offsetWidth;
waveformCanvas.height = waveformCanvas.offsetHeight;
}
if (progressWaveformCanvas) {
progressWaveformCanvas.width = progressWaveformCanvas.offsetWidth;
progressWaveformCanvas.height = progressWaveformCanvas.offsetHeight;
drawProgressWaveform();
}
});
// Make progress waveform clickable for seeking
$(progressWaveformCanvas).on('click', function(e) {
if (!miniPlayer.data('jPlayer')) return;
var rect = progressWaveformCanvas.getBoundingClientRect();
var x = e.clientX - rect.left;
var percent = x / rect.width;
var duration = miniPlayer.data('jPlayer').status.duration;
if (duration > 0) {
var seekTime = duration * percent;
miniPlayer.jPlayer('play', seekTime);
console.log('Progress Waveform: Seeking to', seekTime.toFixed(2), 'seconds');
}
});
// Track mouse position for hover preview on progress waveform
$(progressWaveformCanvas).on('mousemove', function(e) {
var rect = progressWaveformCanvas.getBoundingClientRect();
progressHoverX = e.clientX - rect.left;
drawProgressWaveform();
});
// Clear hover preview when mouse leaves progress waveform
$(progressWaveformCanvas).on('mouseleave', function() {
progressHoverX = -1;
drawProgressWaveform();
});
// Add hover effect to progress waveform
$(progressWaveformCanvas).css({
'cursor': 'pointer'
});
// Initialize progress waveform canvas size
if (progressWaveformCanvas) {
progressWaveformCanvas.width = progressWaveformCanvas.offsetWidth;
progressWaveformCanvas.height = progressWaveformCanvas.offsetHeight;
console.log('Progress Waveform: Canvas initialized');
}
console.log('MINI PLAYER: jPlayer initialized and ready');
// Save current playback state before page unload
$(window).on('beforeunload', function() {
try {
var status = miniPlayer.data('jPlayer').status;
if (window.MiniPlayerJPlayer && window.MiniPlayerJPlayer.currentTrack && !status.paused) {
var playbackState = {
track: window.MiniPlayerJPlayer.currentTrack,
position: status.currentTime || 0,
isPlaying: true,
timestamp: Date.now()
};
localStorage.setItem('miniPlayerState', JSON.stringify(playbackState));
console.log('MINI PLAYER: Saved state before unload');
}
} catch(e) {
console.warn('Could not save state on unload:', e);
}
});
// Restore playback state for continuous play across pages
setTimeout(function() {
try {
var savedState = localStorage.getItem('miniPlayerState');
console.log('MINI PLAYER: Checking for saved state...', savedState ? 'Found' : 'Not found');
if (savedState) {
var state = JSON.parse(savedState);
var timeSinceLastPlay = Date.now() - (state.timestamp || 0);
console.log('MINI PLAYER: State details:', state);
console.log('MINI PLAYER: Time since last play:', timeSinceLastPlay, 'ms');
console.log('MINI PLAYER: Is playing:', state.isPlaying);
// Only restore if it was playing recently (within 5 minutes)
if (timeSinceLastPlay < 300000 && state.track && state.isPlaying) {
console.log('MINI PLAYER: Restoring playback...');
console.log('MINI PLAYER: Track:', state.track.title);
console.log('MINI PLAYER: Position:', state.position);
// Store track in MiniPlayerJPlayer
if (window.MiniPlayerJPlayer) {
window.MiniPlayerJPlayer.currentTrack = state.track;
}
// Update UI immediately
$('#mini_player_title').text(state.track.title || 'Unknown Track');
$('#mini_player_artist').text(state.track.artist || 'Unknown Artist');
if (state.track.artwork) {
var imgHtml = '