Loading...
Pafo37 avatar Pafo37 21 Точки

Добавяне на звук на джава игра

Искам да сложа песен за background, десетки кодове пробвах, на други хора им тръгва, на мен не :D .Намерих този код:
 

public class Sound {

    public static synchronized void playSound(final String url) {
        new Thread(new Runnable() {
            // The wrapper thread is unnecessary, unless it blocks on the
            // Clip finishing; see comments.

            public void run() {
                try {
                    Clip clip = AudioSystem.getClip();

                    AudioInputStream inputStream = AudioSystem.getAudioInputStream(
                            Main.class.getResourceAsStream("pong\\Sounds " + url));
                    clip.open(inputStream);
                    clip.start();
                } catch (Exception e) {
                    System.err.println(e.getMessage());
                }
            }
        }).start();
        playSound("sound.wav");

Би трябвало това да е работещ код, но когато стартирам играта, ми пише null и почват едно след други да излизат, докато не спра играта.

Тагове:
1
Java Advanced
alex1966 avatar alex1966 255 Точки

Какво ти пише Null и какво почва "едно след други да излизат"? Звуците ли?

0
Pafo37 avatar Pafo37 21 Точки

Когато пусна играта, тя си върви без звук и когато погледна конзолата има това:

null

null

null ... т.н, докато не затворя играта.

Като цяло звук не съм можал нито един път да възпроизведа.

0
valiobar avatar valiobar 29 Точки

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;


/**
 * Created by vb on 15.4.2016 г..
 */
public class AudioLoader {
    public static Clip loadAudio(String path) {
        Clip clip=null;
        try
        {
            clip = AudioSystem.getClip();
            URL soundUrl=AudioLoader.class.getResource(path);

            clip.open(AudioSystem.getAudioInputStream(soundUrl));

        }
        catch (Exception exc)
        {
            exc.printStackTrace(System.out);
        }
        return clip;
    }
    }

Така ги зареждам и си бачка.

0
Pafo37 avatar Pafo37 21 Точки

Къде слагаш файла, който ще свири, винаги ми дава null и в някои случаи NullPointerException, а съм ги разположил из целият проект,нито едно не хваща?

package pong;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;

/**
 * Created by vb on 15.4.2016 г..
 */
public class Sound {
    public static Clip loadAudio(String path) {
        Clip clip=null;
        try
        {
            clip = AudioSystem.getClip();
            URL soundUrl=Sound.class.getResource(path);
            clip.open(AudioSystem.getAudioInputStream(soundUrl));
        }
        catch (Exception exc)
        {
            exc.printStackTrace(System.out);
        }
        return clip;

    }

    public static void main(String[] args) {
        loadAudio("Sound.wav");
    }
}

Така го направих кода.

0
19/04/2016 09:54:05
valiobar avatar valiobar 29 Точки

Ами правиш нещо такова

Clip clip= Audioloader.loadclip

Clip.play 

0
Pafo37 avatar Pafo37 21 Точки

Къде го пиша това?

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.