最近遇到个问题:在JAVA中播放多个文件,要按顺序播放,就象呼叫机一样,请多少号到几号窗口办理业务.其中的"请"就是一个单独的文件,还有哪个号是用单个的数字的发音组文件合到一起的,怎么知道前个文件播完了呢,具体怎么去实现呢,有人会的话,就给个例程看看哦!~`谢谢了,看了好多的资料说是要用到现成延迟,好麻烦的哦!~`郁闷中,望好心人解救!~`谢谢了~!`

解决方案 »

  1.   

    在播放的类里面声明一个锁,
    private Object lock;
    假设播放的方法是:
    public void play(){
      ...  lock.notifyAll();
    }
    然后在调用播放方法时,加入延时。
    long then = System.currentTimeMillis();
    synchronized(lock){
      while(System.currentTimeMillis()-then < 1000){
        lock.wait(1000);
      }
      play();
    }
      

  2.   

    楼上的师傅你好~!~
    怎么我就锁不住哦
    我用的播放代码是:
    String FileName="window1.wav";
    private Object lock;
    public void play()
    {
    try {
    System.out.println(new java.util.Date().toString ());
    InputStream inputStream=new FileInputStream(FileName1);
    // 打 开 一 个 声 音 文 件 流 作 为 输 入
    AudioStream audioStream=new AudioStream(inputStream);
    //创建AudioStream的对象
        AudioPlayer.player.start (audioStream);
        //“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放
        //AudioPlayer.player.stop(audioStream);
    }catch(IOException e){}
    //lock.notifyAll();
    }
    如有多个文件那怎么锁哦
    比如一个声音是由
    "请"+"你"+"回家"
    3个文件构成,那你怎么控制哦
    还要让这个声音循环播放哦?
      

  3.   

    java技术交流,欢迎加入40652189,深入学习java的**群,探讨新技术
      

  4.   

    AudioStreamSequence把文件输入流连接起来一起播放
      

  5.   

    对这个声音播放我倒是没写过 
      不过听你这么说  的话  完全可以用生产者和消费者的问题来解决这个问题
        可以试试  wait()  和 notifyall()