Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can u do a code like this in java ? HTML <!DOCTYPE html> <html lang=\"en\"> <hea

ID: 3598377 • Letter: C

Question

Can u do a code like this in java ? HTML

 

<!DOCTYPE html>

<html lang="en">

 

<head>

<meta charset="UTF-8">

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

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<link rel="stylesheet" href="style.css" type="text/css" />

</head>

 

<body>

<audio autoplay loop>

<source src="sound.mp3" type="audio/mpeg">

Your browser does not support the audio element.

</audio>

<div id="cow"></div>

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>

<script src="script.js" type="text/javascript"></script>

 

</body>

 

</html>

--------------------------------------------------------------------------------------

css:

 

* {

margin: 0;

padding: 0;

}

 

body {

background: #cccccc;

}

 

#cow {

position: absolute;

width: 50px;

height: 50px;

background: #cccccc;

}

 

---------------------------------------------------------------

script:

$().ready(function() {

var docHeight = $(document).height(),

docWidth = $(document).width(),

$div = $('#cow'),

divWidth = $div.width(),

divHeight = $div.height(),

heightMax = docHeight - divHeight,

widthMax = docWidth - divWidth;

 

$div.css({

left: Math.floor(Math.random() * widthMax),

top: Math.floor(Math.random() * heightMax)

});

$('#cow').click(showcow);

});

 

function showcow() {

$('#cow').html("");

$('#cow').html("<img src="cow.png" width=50px heigth=50px />")

 

}

Explanation / Answer

// Java program to play an Audio

// file using Clip Object

import java.io.File;

import java.io.IOException;

import java.util.Scanner;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.Clip;

import javax.sound.sampled.LineUnavailableException;

import javax.sound.sampled.UnsupportedAudioFileException;

public class SimpleAudioPlayer

{

    // to store current position

    Long currentFrame;

    Clip clip;

     

    // current status of clip

    String status;

     

    AudioInputStream audioInputStream;

    static String filePath;

    // constructor to initialize streams and clip

    public SimpleAudioPlayer()

        throws UnsupportedAudioFileException,

        IOException, LineUnavailableException

    {

        // create AudioInputStream object

        audioInputStream =

                AudioSystem.getAudioInputStream(new File(filePath).getAbsoluteFile());

         

        // create clip reference

        clip = AudioSystem.getClip();

         

        // open audioInputStream to the clip

        clip.open(audioInputStream);

         

        clip.loop(Clip.LOOP_CONTINUOUSLY);

    }

    public static void main(String[] args)

    {

        try

        {

            filePath = "Your path for the file";

            SimpleAudioPlayer audioPlayer =

                            new SimpleAudioPlayer();

             

            audioPlayer.play();

            Scanner sc = new Scanner(System.in);

             

            while (true)

            {

                System.out.println("1. pause");

                System.out.println("2. resume");

                System.out.println("3. restart");

                System.out.println("4. stop");

                System.out.println("5. Jump to specific time");

                int c = sc.nextInt();

                audioPlayer.gotoChoice(c);

                if (c == 4)

                break;

            }

            sc.close();

        }

         

        catch (Exception ex)

        {

            System.out.println("Error with playing sound.");

            ex.printStackTrace();

         

          }

    }

     

    // Work as the user enters his choice

     

    private void gotoChoice(int c)

            throws IOException, LineUnavailableException, UnsupportedAudioFileException

    {

        switch (c)

        {

            case 1:

                pause();

                break;

            case 2:

                resumeAudio();

                break;

            case 3:

                restart();

                break;

            case 4:

                stop();

                break;

            case 5:

                System.out.println("Enter time (" + 0 +

                ", " + clip.getMicrosecondLength() + ")");

                Scanner sc = new Scanner(System.in);

                long c1 = sc.nextLong();

                jump(c1);

                break;

     

        }

     

    }

     

    // Method to play the audio

    public void play()

    {

        //start the clip

        clip.start();

         

        status = "play";

    }

     

    // Method to pause the audio

    public void pause()

    {

        if (status.equals("paused"))

        {

            System.out.println("audio is already paused");

            return;

        }

        this.currentFrame =

        this.clip.getMicrosecondPosition();

        clip.stop();

        status = "paused";

    }

     

    // Method to resume the audio

    public void resumeAudio() throws UnsupportedAudioFileException,

                                IOException, LineUnavailableException

    {

        if (status.equals("play"))

        {

            System.out.println("Audio is already "+

            "being played");

            return;

        }

        clip.close();

        resetAudioStream();

        clip.setMicrosecondPosition(currentFrame);

        this.play();

    }

     

    // Method to restart the audio

    public void restart() throws IOException, LineUnavailableException,

                                            UnsupportedAudioFileException

    {

        clip.stop();

        clip.close();

        resetAudioStream();

        currentFrame = 0L;

        clip.setMicrosecondPosition(0);

        this.play();

    }

     

    // Method to stop the audio

    public void stop() throws UnsupportedAudioFileException,

    IOException, LineUnavailableException

    {

        currentFrame = 0L;

        clip.stop();

        clip.close();

    }

     

    // Method to jump over a specific part

    public void jump(long c) throws UnsupportedAudioFileException, IOException,

                                                        LineUnavailableException

    {

        if (c > 0 && c < clip.getMicrosecondLength())

        {

            clip.stop();

            clip.close();

            resetAudioStream();

            currentFrame = c;

            clip.setMicrosecondPosition(c);

            this.play();

        }

    }

     

    // Method to reset audio stream

    public void resetAudioStream() throws UnsupportedAudioFileException, IOException,

                                            LineUnavailableException

    {

        audioInputStream = AudioSystem.getAudioInputStream(

        new File(filePath).getAbsoluteFile());

        clip.open(audioInputStream);

        clip.loop(Clip.LOOP_CONTINUOUSLY);

    }

}

-----------------------------------------------------------------------------------------------------

In above program we have used AudioInputStream which is a class in Java to read audio file as a stream. Like every stream of java if it is to be used again it has to be reset.

-->To pause the playback we have to stop the player and store the current frame in an object. So that while resuming we can use it. When resuming we just have to play again the player from the last position we left.
clip.getMicrosecondPosition() method returns the current position of audio and clip.setMicrosecondPosition(long position) sets the current position of audio.

-->To stop the playback, you must have to close the clip otherwise it will remain open. I have also used clip.loop(Clip.LOOP_CONTINOUSLY) for testing. Because wav files are generally small so I have played mine in a loop.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote