HTML5 video player with Bootstrap responsive hidden controls and an audio control

 <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>HTML5 Video Player with Bootstrap</title>


    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">


    <style>

        /* Hide the default video controls */

        .video-container video {

            controls: none;

        }


        /* Create a custom control bar */

        .video-container .controls {

            position: absolute;

            bottom: 0;

            width: 100%;

            background-color: rgba(0, 0, 0, 0.7);

            padding: 10px;

            opacity: 0;

            transition: opacity 0.5s ease;

        }


        /* Show the control bar on hover */

        .video-container:hover .controls {

            opacity: 1;

        }


        /* Style the control bar buttons */

        .video-container .controls button {

            border: none;

            background-color: transparent;

            color: white;

            padding: 0 5px;

            cursor: pointer;

        }


        /* Style the progress bar */

        .video-container .progress {

            height: 10px;

            background-color: #ccc;

            border-radius: 5px;

        }


        .video-container .progress-bar {

            background-color: #007bff;

            border-radius: 5px;

        }


        /* Style the volume slider */

        .video-container .volume-slider {

            width: 100px;

            margin-top: 5px;

        }

    </style>

</head>

<body>

<div class="video-container">

    <video src="video.mp4" width="640" height="360" autoplay></video>


    <div class="controls">

        <button onclick="playPause()">Play/Pause</button>

        <button onclick="mute()">Mute</button>

        <input type="range" min="0" max="1" step="0.01" value="1" class="volume-slider" oninput="setVolume()">

        <div class="progress">

            <div class="progress-bar" style="width: 0%"></div>

        </div>

    </div>

</div>


<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>


<script>

    let video = document.querySelector('video');

    let progress = document.querySelector('.progress-bar');

    let playPauseButton = document.querySelector('button[onclick="playPause()"]');


    video.ontimeupdate = function() {

        let percentage = (video.currentTime / video.duration) * 100;

        progress.style.width = percentage + '%';

    };


    function playPause() {

        if (video.paused) {

            video.play();

            playPauseButton.textContent = 'Pause';

        } else {

            video.pause();

            playPauseButton.textContent = 'Play';

        }

    }


    function mute() {

        if (video.muted) {

            video.muted = false;

            volumeSlider.value = 1;

        } else {

            video.muted = true;

            volumeSlider.value = 0;

        }

    }


    let


Tags