⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audiochoicetest.java

📁 java learn PPT java learn PPT java learn PPT java learn PPT
💻 JAVA
字号:
     import java.applet.*;
     import java.awt.*;
     import java.awt.event.*;

     // 让用户从几个音频片段中选择来播放
     public class AudioChoiceTest extends Applet implements ActionListener
     {          
          // 程序中声音的名字
          public final String[] AUDIO = 
                 { "ping", "pop", "return", "salvation", "shuffle", "squish" };

          // 包含上述字符串数组的下拉框
          private Choice choice;

          // 真实的音频片段数据
          private AudioClip[] clips;

          // 控制播放停止的按钮
          private Button playClip;
          private Button loopClip;
          private Button stopClip;
          private Button stopAllClips;

          // 跟踪当前哪些音频片段在播放
          private boolean[] clipsPlaying;
          
          public void init()
          {   
               setBackground(new Color(48, 255, 0));

               // 构建下拉框和 AudioClip 对象
               choice       = new Choice();
               clips        = new AudioClip[AUDIO.length];
               clipsPlaying = new boolean[AUDIO.length];
               for(int i = 0; i < AUDIO.length; i++)
               {
                    // 为每一个选项添加一个描述的字符串
                    choice.add(AUDIO[i]);
                    // 添加音频片段的路径和扩展名
                    clips[i] = getAudioClip(getCodeBase(), "audio/"+AUDIO[i]+".au"); 
               
                    // 标志这个片段是否在播放的布尔值 
                    clipsPlaying[i] = false;
               }
               add(choice);

               // 创建播放和停止按钮     
               playClip = new Button("Play clip");
               playClip.addActionListener(this);
               add(playClip);

               loopClip = new Button("Loop clip");
               loopClip.addActionListener(this);
               add(loopClip);

               stopClip = new Button("Stop clip");
               stopClip.addActionListener(this);
               add(stopClip);

               stopAllClips = new Button("Stop all clips");
               stopAllClips.addActionListener(this);
               add(stopAllClips);

               // 如何没有什么要停止的话把停止按钮变灰
               stopClip.setEnabled(false);
               stopAllClips.setEnabled(false);
          }

          // 停止所有音频片段的播放
          public void stop()
          {
               for(int i = 0; i < AUDIO.length; i++)
               {
                    if(clipsPlaying[i])
                    {
                         clips[i].stop();
                    }
               }
          }

          // 允许用户使得音频片段播放、循环播放或者停止          
          public void actionPerformed(ActionEvent e)
          {
               int clipIndex  = choice.getSelectedIndex();
               AudioClip clip = clips[clipIndex];

               // 播放被选中的音频片段
               if(e.getSource() == playClip)
               {
                    clip.play();
                    stopClip.setEnabled(true);      
                    stopAllClips.setEnabled(true);                          
                    clipsPlaying[clipIndex] = true; 
               }

               // 循环播放被选中的音频片段
               else if(e.getSource() == loopClip)
               {
                    clip.loop();
                    stopClip.setEnabled(true); 
                    stopAllClips.setEnabled(true);                          
                    clipsPlaying[clipIndex] = true;
               }

               // 停止播放被选中的音频片段
               else if(e.getSource() == stopClip)
               {
                    clip.stop();
                    stopClip.setEnabled(false); 
                    stopAllClips.setEnabled(false);                          

                    clipsPlaying[clipIndex] = false;

                    // 只要有一个音频片段在播放就激活停止按钮
                    for(int i = 0; i < AUDIO.length; i++)
                    {
                         if(clipsPlaying[i])
                         {
                              stopClip.setEnabled(true); 
                              stopAllClips.setEnabled(true);                          
                              break;
                         }
                    }
               }

               // 停止播放所有的音频片段
               else if(e.getSource() == stopAllClips)
               {
                    for(int i = 0; i < AUDIO.length; i++)
                    {
                         if(clipsPlaying[i])
                         {
                              clips[i].stop();
                              clipsPlaying[i] = false;
                         }
                    }

                    stopClip.setEnabled(false); 
                    stopAllClips.setEnabled(false); 
               }
          }

      }    // AudioChoiceTest

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -