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

📄 audiojukebox.java

📁 Java游戏高级编程!!很不错的!!!Java游戏高级编程!!很不错的
💻 JAVA
字号:
     package com.croftsoft.core.media.sound;

     import java.applet.*;
     import java.net.*;
     import java.util.*;

     /*********************************************************************
     * Manages the play of multiple AudioClips.
     *
     * @author
     *   <A HREF="http://www.alumni.caltech.edu/~croft/">David W. Croft</A>
     * @version
     *   1999-11-26
     *********************************************************************/

     public final class  AudioJukebox
     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     {

     private final Map        nameToClipMap;

     private       AudioClip  audioClip;

     //////////////////////////////////////////////////////////////////////
     // Static methods
     //////////////////////////////////////////////////////////////////////

     public static void  main ( String [ ]  args )
       throws MalformedURLException
     //////////////////////////////////////////////////////////////////////
     {
       randomPlay ( 1000, args );
     }

     public static void  randomPlay (
       long        playTime,
       String [ ]  audioClipNames )
       throws MalformedURLException
     //////////////////////////////////////////////////////////////////////
     {
       Map  nameToClipMap = new HashMap ( );

       for ( int  i = 0; i < audioClipNames.length; i++ )
       {
         URL  audioClipURL = nameToClipMap.getClass ( ).getResource (
           audioClipNames [ i ] );

         AudioClip  audioClip = Applet.newAudioClip ( audioClipURL );

         nameToClipMap.put ( audioClipNames [ i ], audioClip );
       }

       AudioJukebox  audioJukebox = new AudioJukebox ( nameToClipMap );

       Random  random = new Random ( );

       while ( true )
       {
         audioJukebox.play (
           audioClipNames [ random.nextInt ( audioClipNames.length ) ] );

         try
         {
           Thread.sleep ( playTime );
         }
         catch ( InterruptedException  ex )
         {
         }
       }
     }

     //////////////////////////////////////////////////////////////////////
     // Constructor methods
     //////////////////////////////////////////////////////////////////////

     public  AudioJukebox ( Map  nameToClipMap )
     //////////////////////////////////////////////////////////////////////
     {
       if ( nameToClipMap == null )
       {
         throw new IllegalArgumentException ( "null nameToClipMap" );
       }

       this.nameToClipMap = nameToClipMap;
     }

     //////////////////////////////////////////////////////////////////////
     // Instance methods
     //////////////////////////////////////////////////////////////////////

//   addAudioClip()

//   removeAudioClip()

//   public void  play ( String  audioClipName, int  priority.....? )

     public void  play ( String  audioClipName )
     //////////////////////////////////////////////////////////////////////
     {
       stop ( );

       audioClip = ( AudioClip ) nameToClipMap.get ( audioClipName );

       try
       {
         audioClip.play ( );
       }
       catch ( NullPointerException  ex )
       {
       }
     }

     public void  stop ( )
     //////////////////////////////////////////////////////////////////////
     {
       try
       {
         audioClip.stop ( );
       }
       catch ( NullPointerException  ex )
       {
       }
     }

     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     }

⌨️ 快捷键说明

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