GARANTIR DESCONTO

Fórum Reproduzir som Java #588663

09/11/2017

0

Meu código:

import java.net.URL;
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.*;

public class Som {

    public static void main(String[] args) throws Exception {

        // Carrega o arquivo de áudio (não funciona com .mp3, só .wav) 
        String resource = "./beep-02.wav";
		InputStream input = getClass().getResourceAsStream(resource);
        Clip oClip = AudioSystem.getClip();
        AudioInputStream audioInput = AudioSystem.getAudioInputStream(input);
        oClip.open(audioInput);

        oClip.loop(0); // Toca uma vez
        //clip.loop(Clip.LOOP_CONTINUOUSLY); // Toca continuamente (para o caso de músicas)

        // Para a execução (senão o programa termina antes de você ouvir o som)
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
         
            }
        });
    }
}



Porem recebo o erro:

error: non-static method getClass() cannot be referenced from a static context
InputStream input = getClass().getResourceAsStream(resource);
^
1 error


Como eu o arrumo?
Clockwork

Clockwork

Responder

Post mais votado

09/11/2017

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication1;

/**
 *
 * @author prog1
 */
import java.net.URL;
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.*;

public class Som {

    public static void main(String[] args) {
        new Som().som();
    }
    
    public void som() {
        try {
            // Carrega o arquivo de áudio (não funciona com .mp3, só .wav) 
        String resource = "./beep-02.wav";
		InputStream input = getClass().getResourceAsStream(resource);
        Clip oClip = AudioSystem.getClip();
        AudioInputStream audioInput = AudioSystem.getAudioInputStream(input);
        oClip.open(audioInput);

        oClip.loop(0); // Toca uma vez
        //clip.loop(Clip.LOOP_CONTINUOUSLY); // Toca continuamente (para o caso de músicas)

        // Para a execução (senão o programa termina antes de você ouvir o som)
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
         
            }
        });
        } catch (Exception e) {
        }
        
    }
}

Deivid Nascimento

Deivid Nascimento
Responder

Gostei + 2

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar