User:Toad64/Sandbox: Difference between revisionsGive feedback
updated codeblock |
No edit summary |
||
| (6 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Using Javascript | Using Javascript, It is possible to modify the default audio element used to play audio. This code replaces the standard webkit media player with a stylized version. (Currently for chromium browsers only) | ||
<syntaxhighlight lang="javascript"> | |||
// gemini code | // gemini code | ||
// In your Common.js | // In your Common.js | ||
$(document).ready(function() { | $(document).ready(function() { | ||
$('audio').each(function() { | $('audio').each(function() { | ||
const $this = $(this); | |||
const | const src = $this.attr('src'); | ||
// | // Log what we found to the console so we can see why it's undefined | ||
console.log("Processing element:", this); | |||
console.log("Source found:", src); | |||
if (src) { | |||
const myPlayer = document.createElement('audio-player'); | |||
myPlayer.setAttribute('track', src); | |||
$this.replaceWith(myPlayer); | |||
} else { | |||
console.warn("Skipping element because src is undefined:", this); | |||
} | |||
}); | }); | ||
}); | }); | ||
| Line 28: | Line 33: | ||
this.innerHTML = ` | this.innerHTML = ` | ||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |||
<style> | <style> | ||
.player-controls { | .player-controls { | ||
| Line 33: | Line 40: | ||
align-items: center; | align-items: center; | ||
gap: 12px; | gap: 12px; | ||
width: 100%; | width: 100%; | ||
max-width: 400px; | max-width: 400px; | ||
padding: 10px 15px; | |||
border-radius: 50px; | border-radius: 50px; | ||
color: | |||
background: var(--background-color-base-subtle); | |||
color: var(--color-base); | |||
font-family: sans-serif; | font-family: sans-serif; | ||
box-sizing: border-box; | |||
overflow: hidden; | |||
} | } | ||
.playBtn { | .playBtn { | ||
flex-shrink: 0; | |||
width: 30px; | width: 30px; | ||
height: 30px; | height: 30px; | ||
border: none; | border: none; | ||
border-radius: 50%; | border-radius: 50%; | ||
align-items: center; | |||
justify-content: center; | |||
background: var(--background-color-interactive); | |||
color: var(--color-base); | |||
cursor: pointer; | cursor: pointer; | ||
} | |||
.playBtn:hover { | |||
background: var(--background-color-interactive-subtle); | |||
} | } | ||
.seek { | .seek { | ||
flex: 1; | |||
-webkit-appearance: none; | |||
appearance: none; | |||
height: 6px; | height: 6px; | ||
border-radius: 5px; | border-radius: 5px; | ||
background: var(--color-base); | |||
cursor: pointer; | cursor: pointer; | ||
} | } | ||
.time { font-size: 12px; opacity: 0.8; white-space: nowrap; } | |||
.seek::-webkit-slider-thumb { | |||
-webkit-appearance: none; | |||
appearance: none; | |||
width: 15px; | |||
height: 15px; | |||
border-radius: 50px; | |||
background: var(--link-color); | |||
cursor: pointer; | |||
} | |||
.seek::-moz-range-thumb { | |||
-webkit-appearance: none; | |||
appearance: none; | |||
width: 15px; | |||
height: 15px; | |||
border-radius: 50px; | |||
background: var(--link-color); | |||
cursor: pointer; | |||
} | |||
.time { | |||
font-size: 12px; | |||
opacity: 0.8; | |||
white-space: nowrap; | |||
} | |||
</style> | </style> | ||
<div class="player-controls"> | <div class="player-controls"> | ||
<audio class="audio"><source src="${src}" type="${mime}"></audio> | <audio class="audio"><source src="${src}" type="${mime}"></audio> | ||
<button class="playBtn"> | <button class="playBtn"><i class="fa-solid fa-play"></i></button> | ||
<input class="seek" type="range" value="0" min="0" max="100"> | <input class="seek" type="range" value="0" min="0" max="100"> | ||
<span class="time">0:00 / 0:00</span> | <span class="time">0:00 / 0:00</span> | ||
| Line 76: | Line 131: | ||
playBtn.addEventListener("click", () => { | playBtn.addEventListener("click", () => { | ||
if (audio.paused) { audio.play(); playBtn. | if (audio.paused) { audio.play(); playBtn.innerHTML = '<i class="fa-solid fa-pause"></i>'; } | ||
else { audio.pause(); playBtn. | else { audio.pause(); playBtn.innerHTML = '<i class="fa-solid fa-play"></i>'; } | ||
}); | }); | ||
| Line 101: | Line 156: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
In this example, the Old Deadlock Title Screen: | |||
[[File:Music menu lp.mp3]] | |||