package com.lloydm.javakogengine_chess; import android.annotation.SuppressLint; import android.media.AudioAttributes; import android.media.AudioManager; import android.media.SoundPool; import android.os.Build; class Audios { public static SoundPool sndpool = null; public int index; public boolean loop; public int volume; // public int audio; public boolean ismusic; public boolean ispaused; public int[] channel; public static int maxchannels = 8; public String file; public int previousmusicchannel; public int currentmusicchannel; // // ///////////////////Method Definition/////////////// public Audios() { loop = false; volume = 1; index = 0; ismusic = false; channel = new int[Audios.maxchannels]; ispaused = false; file = "";//25mar2021 } // @SuppressWarnings("deprecation") @SuppressLint("NewApi") public static void Init()//25sep2021 { if (Build.VERSION.SDK_INT < 21) { sndpool = new SoundPool(32, AudioManager.STREAM_MUSIC, 0); } else { AudioAttributes.Builder attr = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_GAME); AudioAttributes attrb = attr.build(); SoundPool.Builder sndpoolbuilder = new SoundPool.Builder().setAudioAttributes(attrb).setMaxStreams(32); sndpool = sndpoolbuilder.build(); } } ///////////////////Method Definition/////////////// public static int playsound(Audios a,int vol) { //////////////////////// //play an audio clip at a specified volume from 0 to 100 if (Audios.sndpool == null)//25sep2021 { return -1; } if(!Game.audioon) { return -1; } if(!a.ismusic) { //start-------------//10sep2021 //in case we freed at a certain point..... //in the game.... if(a.audio<=0) { if(a.file!=null) { if(!a.file.equals("")) { // a.audio = SDL_mixer.Mix_LoadWAV(a.file); } } } //end---------------//10sep2021 int i = Audios.sndpool.play(a.audio, (float)Game.FXVOLUME/100f, (float)Game.FXVOLUME/100f,1,0, 1);//25sep2021 //SDL_mixer.Mix_Volume(i,vol); return i; } return -1; } ///////////////////Method Definition/////////////// public static void playmusic(Audios a,int vol,boolean loop) { //play a music clip at a specified volume from 0 to 100, and perhaps loop it if(!Game.audioon) { return; } if(a.ismusic) { if(a.ispaused) { // SDL_mixer.Mix_ResumeMusic(); a.ispaused = false; } else { int i = -1;//SDL_mixer.Mix_PlayMusic(a.audio,-1); //SDL_mixer.Mix_VolumeMusic(vol); a.previousmusicchannel = a.currentmusicchannel; a.currentmusicchannel = i; a.ispaused = false; } } } ///////////////////Method Definition/////////////// public static void FreeAudio(Audios a)//10sep2021 { //alias for freeaudio(Audios a) freeaudio(a); } ///////////////////Method Definition/////////////// public static void freeaudio(Audios a)//10sep2021 { if(a.ismusic) { return; } try { //SDL_mixer.Mix_FreeChunk(a.audio); LocalStorage.setitem("FREE AUDIO:"+a.file,"SUCCESS"); //24mar2021 a.audio = 0; } catch(Exception e) { //String txt = "";//e.Message; } } ///////////////////Method Definition/////////////// public static void stopchannel(int i)//10sep2021 { try { //SDL_mixer.Mix_HaltChannel(i); Audios.sndpool.pause(i);//25sep2021 } catch(Exception e) { //String txt = "";//e.Message; } } ///////////////////Method Definition/////////////// public static void pauseaudio(Audios a) { //pause an audio music track that is playing //and stop all other audio at the same time. if(a.ismusic) { //SDL_mixer.Mix_PauseMusic(); a.ispaused = true; } else { } //SDL_mixer.Mix_HaltChannel(-1); } ///////////////////Method Definition/////////////// public static void resumemusic(Audios a) { //resume a music track that is paused. if(!Game.audioon) { return; } if(a.ismusic) { //SDL_mixer.Mix_ResumeMusic(); a.ispaused = false; } } } //