An open API service indexing awesome lists of open source software.

https://github.com/dalascript/music-player

ZTM JS Web Projects Course | Music Player | Project 8/20
https://github.com/dalascript/music-player

audio-api css html js music-player zerotomastery

Last synced: 6 months ago
JSON representation

ZTM JS Web Projects Course | Music Player | Project 8/20

Awesome Lists containing this project

README

          

# Music Player | ZTM JS Web Projects Course

**Project 8/20**

šŸŽµ Music Player is a stylish and responsive web audio player built using HTML, CSS, and JavaScript. It allows users to play, pause, skip, and rewind through a playlist with real-time progress tracking and dynamic song updates.

---

## šŸ“š Table of Contents

- [šŸ”Ž Overview](#-overview)
- [šŸ“ø Screenshot](#-screenshot)
- [šŸ”— Links](#-links)
- [šŸ“Œ Features](#-features)
- [🧠 My process](#-my-process)
- [šŸ› ļø Built with](#ļø-built-with)
- [šŸŽ“ What I learned](#-what-i-learned)
- [šŸ”™ Previous Project](#-previous-project)
- [šŸ”œ Next Project](#-next-project)
- [šŸ—ƒļø Useful resources](#ļø-useful-resources)
- [šŸ‘¤ Author](#-author)
- [🌐 Connect with Me](#-connect-with-me)
- [šŸ’» Coding Profiles](#-coding-profiles)

---

## šŸ”Ž Overview

### šŸ“ø Screenshot

![Live Preview Screenshot](./assets/screenshot.jpg)

### šŸ”— Links

- [šŸ”“ Live Demo](https://dalascript.github.io/music-player/)
- [šŸ—‚ļø GitHub Repository](https://github.com/DalaScript/music-player)

### šŸ“Œ Features

- āœ… Dynamic playlist of multiple songs
- āœ… Play/Pause toggle with animated icon switching
- āœ… Next and Previous song navigation
- āœ… Real-time progress bar with time tracking
- āœ… Click-to-seek functionality on the progress bar
- āœ… Auto-switch to next track when current ends
- āœ… Responsive design and mobile-friendly layout
- āœ… Smooth UI with album art transitions

---

## 🧠 My Process

### šŸ› ļø Built with

- HTML5
- CSS3
- Vanilla JavaScript
- `` API

### šŸŽ“ What I Learned

- How to use the `` element and its JavaScript API
- Managing dynamic playlists with JavaScript objects and arrays
- DOM manipulation and updating UI in real-time
- Event listeners for media playback control
- Calculating and formatting audio time (minutes/seconds)
- Handling user input for audio scrubbing and interaction

> šŸš€ For me, this project was more about **practice** and gaining additional **experience**,
> rather than learning something entirely new.
>
> šŸ‘Øā€šŸ’» Since I’m not a beginner and already familiar with these technologies,
> I approached it with confidence — and still, I truly **enjoyed working on it**.
>
> šŸŽÆ Overall, I consider this a very **valuable and enjoyable experience**.

### šŸ”™ Previous Project

- Navigation Nation | *[Project 7/20]* → [View Repository](https://github.com/DalaScript/navigation-nation)

### šŸ”œ Next Project

- Custom Countdown | *[Project 9/20]* → [View Repository](https://github.com/DalaScript/custom-countdown)

### šŸ—ƒļø Useful resources

- [Google Fonts](https://fonts.google.com/) – Free web fonts for styling text.
- [FontAwesome Icons](https://fontawesome.com/icons?d=gallery&q=close&m=free) – Icons used for UI controls.
- [W3Schools - Audio DOM Reference](https://www.w3schools.com/tags/ref_av_dom.asp) – Reference for `` methods/events.
- [W3Schools - This](https://www.w3schools.com/js/js_this.asp) – Explains how `this` works in JS.
- [MDN - Object Fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) – Resize media inside containers.
- [MDN - Ternary Operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_operator) – Short `if-else` syntax.
- [MDN - Destructuring](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring) – Extract values from objects/arrays.
- [MDN - Math Floor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor) – Round numbers down.
- [MDN - Math Operators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators) – JavaScript math basics.
- [textContent vs innerText](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) – Difference between text outputs.

---

## šŸ‘¤ Author

### 🌐 Connect with Me

- [Instagram](https://www.instagram.com/DalaScript)
- [YouTube](https://www.youtube.com/@DalaScript)

### šŸ’» Coding Profiles

- [freeCodeCamp](https://www.freecodecamp.org/DalaScript)
- [FrontendMentor](https://www.frontendmentor.io/profile/DalaScript)
- [GitHub](https://github.com/DalaScript)

*šŸ™Œ Thanks for checking out my project! More coming soon. Stay tuned šŸš€*