簡體   English   中英

無法使用剪輯在java中播放聲音

[英]Can't play sound in java using clip

我想使用下面的代碼在java中播放一些聲音。 那個聲音是 WAV 格式,所以我認為這段代碼應該可以正常工作,但它沒有播放聲音,它什么也不做。 我的控制台上甚至沒有錯誤。 那么有人可以幫我讓這段代碼播放聲音嗎? (此聲音包含在我的 src 文件中的一個包中)

 public static void main(String[] args) {

 new Thread(new Runnable() {

        @Override
        public void run() {

            try {

                Clip clip = AudioSystem.getClip();

                File file = new File("C:\\Users\\Jovan\\Desktop\\song.wav");

                AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);

                clip.open(inputStream);

                clip.start();

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    });
 }

您必須等待剪輯播放和結束。 您還可以創建一些偵聽器,但這更復雜。 當剪輯完成播放(isActive() 為假)時,您就結束了。

public class P {

 public static void main(String[] args) {

 new Thread(new Runnable() {

        @Override
        public void run() {

            try {

            System.out.println("started");

                Clip clip = AudioSystem.getClip();

                File file = new File(".......................wav");

                AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);

                clip.open(inputStream);

                clip.start();

                while(clip.isOpen()) {
                  try { Thread.sleep(2000); } catch(InterruptedException ie) {}
                  if(!clip.isActive()) break;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }).start();
 }

 }

你剛剛開始這個線程,所以創建一個對象:

import java.io.*;
import  javax.sound.sampled.*;

class x {
    public static void main(String[] args) {

        Thread b= new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    Clip clip = AudioSystem.getClip();
                    File file = new File("G:/skit/msg.wav");
                    AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
                    clip.open(inputStream);
                    clip.start();
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        });
        b.start();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM