using NAudio.Wave; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace CDSAE3_Lian_Lian_Kan.Sound { public class Info_Audio_processer { Etcs.break_music soundScape_version = Etcs.break_music.breakA; string last_break_soundScape = ""; Random random = new Random(); internal void set_SoundScape_version(Etcs.break_music version) => soundScape_version = version; internal void play_random_break_soundScape(int volume = -1, Action? finished = null) { Task.Run(() => { if (volume == -1) volume = Etcs.Info_Volume; if (finished == null) finished = (s, player) => player.Dispose(); AudioPlayer audioPlayer = new AudioPlayer(get_random_break_soundScape(), volume, finished); audioPlayer.resume_song(); }); } internal void playMusicClip(string s,int volume = -1,Action?finished = null) { Task.Run(() => { if (volume == -1) volume = Etcs.Info_Volume; if (finished == null) finished = (s, player) => player.Dispose(); AudioPlayer audioPlayer = new AudioPlayer(s, volume, finished); audioPlayer.resume_song(); }); } private string get_random_break_soundScape() { string name; for (; ; ) { name = soundScape_version switch { Etcs.break_music.breakA => "breakA" + (random.Next(1, 9)).ToString(), Etcs.break_music.breakB => throw new NotImplementedException(), _ => "breakA" + (random.Next(0, 9)).ToString() }; if (name != last_break_soundScape) break; } return name; //MemoryStream sound = new MemoryStream((byte[])obj); //MemoryStream ms = new MemoryStream(StreamToBytes(sound)); //var ws = new Mp3FileReader(ms); //BlockAlignReductionStream blockAlignReductionStream = new BlockAlignReductionStream(ws); //Wave16ToFloatProvider wave16ToFloatProvider = new Wave16ToFloatProvider(blockAlignReductionStream); //wave16ToFloatProvider.Volume = soundScape_volume / 100f; //return wave16ToFloatProvider; } } }