作了个定时器,怎么让他到时间了发声音出来啊

解决方案 »

  1.   

    我用了thread,都弄好了,就是不会发声音
      

  2.   

    给你一段播放声音的代码学习一下:
    import javax.sound.sampled.*;
    import java.io.*;
    import java.net.*;
     class PlaySound {
     
     
      public PlaySound(String pos) {
        try {
            // 创建一个你要播放的文件
            AudioInputStream stream = AudioSystem.getAudioInputStream(new File(pos));  //在此改成你的文件路径
            AudioFormat format = stream.getFormat();
            if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
                format = new AudioFormat(
                        AudioFormat.Encoding.PCM_SIGNED,
                        format.getSampleRate(),
                        format.getSampleSizeInBits()*2,
                        format.getChannels(),
                        format.getFrameSize()*2,
                        format.getFrameRate(),
                        true);        // big endian
                stream = AudioSystem.getAudioInputStream(format, stream);
            }        // Create line
            SourceDataLine.Info info = new DataLine.Info(
                SourceDataLine.class, stream.getFormat(),
                ((int)stream.getFrameLength()*format.getFrameSize()));
            SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
            line.open(stream.getFormat());
            line.start();        // Continuously read and play chunks of audio
            int numRead = 0;
            byte[] buf = new byte[line.getBufferSize()];
            while ((numRead = stream.read(buf, 0, buf.length)) >= 0) {
                int offset = 0;
                while (offset < numRead) {
                    offset += line.write(buf, offset, numRead-offset);
                }
            }
            line.drain();
            line.stop();
            stream.close();
        } catch (MalformedURLException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        } catch (LineUnavailableException e) {
          e.printStackTrace();
        } catch (UnsupportedAudioFileException e) {
          e.printStackTrace();
        }  }
    }