nokia播放声音

    技术2022-05-11  69

     static byte[] readSoundData(String name) {         ByteArrayOutputStream out;     InputStream in;     byte[] res = null;     try {       in = name.getClass().getResourceAsStream(name);       out = new ByteArrayOutputStream();       for (int ret = in.read(); ret >= 0; ret = in.read())           out.write(ret);       res = out.toByteArray();         } catch (Exception e) {           e.printStackTrace();     }           return res;  } static void soundLoad(int soundID) {      try {          //ByteArrayInputStream bis = null;          //DataInputStream dis = new DataInputStream(FILE_NAME_SOUNDS.getClass().getResourceAsStream(FILE_NAME_SOUNDS));       //DataInputStream dis = new DataInputStream(FILE_NAME_SOUNDS.getClass().getResourceAsStream(FILE_NAME_SOUNDS));         int sndCount = 5;       int temp;     s_soundData = new byte[sndCount][];         //sndCount = dis.read();

              //s_sounds = new Player[sndCount];

              //for (int i = 0; i < sndCount; i++) {              //int size = readNumber(dis, 2);        if(/*i == 0 && */soundID == 0){          temp = readSoundData("/AlexandraLedermann/sfx_good_jump.wav").length;         s_soundData[soundID] = new byte[temp];          s_soundData[soundID] = readSoundData("/AlexandraLedermann/sfx_good_jump.wav");        }        else if(/*i == 1 && */soundID == 1){ //unreached here         temp = readSoundData("/AlexandraLedermann/m_townmap.wav").length;         s_soundData[soundID] = new byte[temp];          s_soundData[soundID] = readSoundData("/AlexandraLedermann/m_townmap.wav");        }        else if(/*i == 2 && */soundID == 2){          temp = readSoundData("/AlexandraLedermann/m_congratulation.wav").length;         s_soundData[soundID] = new byte[temp];          s_soundData[soundID] = readSoundData("/AlexandraLedermann/m_congratulation.wav");        }        else if(/*i == 3 && */soundID == 3){ //unreached here         temp = readSoundData("/AlexandraLedermann/m_failure.wav").length;         s_soundData[soundID] = new byte[temp];          s_soundData[soundID] = readSoundData("/AlexandraLedermann/m_failure.wav");        }        else if(/*i == 4 && */soundID == 4){          temp = readSoundData("/AlexandraLedermann/m_title.wav").length;         s_soundData[soundID] = new byte[temp];          s_soundData[soundID] = readSoundData("/AlexandraLedermann/m_title.wav");        }else{            s_soundData[soundID] = null;        }             

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

      }  static void soundRelease() {      if (s_currentSound != null)   {       s_currentSound.stop();       s_currentSound.release();    s_currentSound = null;   }   if (s_soundData != null)      {          for (int i = 0;i < s_soundData.length; i++ )          {              if (s_soundData[i] != null)     {                  s_soundData[i] = null;     }          }          s_soundData = null;                }   isSoundLoaded = false;      System.gc();

      }  static void Snd_setChannelVolume(int channel, int volume) throws Exception  {   try   {    if(s_currentSound != null)     s_currentSound.setGain(150);   }   catch (Exception e)   {    s_currentSound = null;   }  }  static void Snd_prepare(int index, int channel) throws Exception  {   try   {    if(s_currentSound == null)     s_currentSound = new Sound(s_soundData[index], Sound.FORMAT_WAV));// if wav format      //s_currentSound = new Sound(s_soundData[index], Sound.FORMAT_TONE));// if midi, ott format      }   catch (Exception e)   {    e.printStackTrace();    s_currentSound = null;   }  }    public static void soundPlay(int soundID, int loop) {      if ( (!s_soundEnable) )   {        return;   }     try {            if (  (s_currentSound != null) && (s_currentSoundId == soundID)                &&  (s_currentSound.getState() == Sound.SOUND_PLAYING)                    )                return;   if (s_currentSoundId > 0)       soundStop(s_currentSoundId);            if ( s_currentSound != null)   {             s_currentSound.stop();       s_currentSound.release();    s_currentSound = null;   }   s_currentSoundId = soundID;   s_isPlayingID = soundID;

           if (s_soundData[soundID] == null)    {        soundLoad(soundID);    }

                 if ((s_currentSound != null) && (s_currentSound.getState() == Sound.SOUND_PLAYING))              return ;                       

        // Create player    Snd_prepare(soundID, 0);        // Set volume    Snd_setChannelVolume(0, 0);    //play        s_currentSound.play(loop);

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

      }

      public static void soundStop(int id) {      try {          if (CRes.bDebugMode) {              System.out.println("soundStop : " + id);          }          if (s_currentSound == null) {              return;          }          // stop all sounds          if (id == -1) {                                if (s_currentSound != null) {                   s_currentSound.stop();                   s_currentSound.release();                   s_currentSound = null;                   }                        }          // stop the specific sound          else {              if (s_currentSound != null) {               s_currentSound.stop();               s_currentSound.release();               s_currentSound = null;

                  }          }    //s_currentSound = null;    //s_isPlayingID = -1;    System.gc();      }      catch (Exception ex) {              ex.printStackTrace();      }  }   


    最新回复(0)