public static bool EachFrame() // ret: ? 処理した。 { if (1 <= PlayInfos.Count) { PlayInfo info = PlayInfos.Dequeue(); if (info != null) { switch (info.AlterCommand) { case PlayInfo.AlterCommand_e.NORMAL: info.SE.HandleIndex++; info.SE.HandleIndex %= info.SE.Sound.HandleCount; if (DDSoundUtils.IsPlaying(info.SE.Sound.GetHandle(info.SE.HandleIndex))) { for (info.SE.HandleIndex = 0; info.SE.HandleIndex < info.SE.Sound.HandleCount; info.SE.HandleIndex++) { if (!DDSoundUtils.IsPlaying(info.SE.Sound.GetHandle(info.SE.HandleIndex))) { goto foundNotPlaying; } } //info.SE.HandleIndex = info.SE.Sound.HandleCount; info.SE.Sound.Extend(); //ProcMain.WriteLog("音を拡張しました。" + info.SE.Sound.HandleCount); } foundNotPlaying: DDSoundUtils.Play(info.SE.Sound.GetHandle(info.SE.HandleIndex)); break; case PlayInfo.AlterCommand_e.STOP: for (int index = 0; index < info.SE.Sound.HandleCount; index++) { DDSoundUtils.Stop(info.SE.Sound.GetHandle(index)); } break; case PlayInfo.AlterCommand_e.LOOP: DDSoundUtils.Play(info.SE.Sound.GetHandle(0), false); break; default: throw new DDError(); } return(true); } } return(false); }
public bool IsPlaying() { if (this.Handles != null) { for (int index = 0; index < this.HandleCount; index++) { if (DDSoundUtils.IsPlaying(this.Handles[index])) { return(true); } } } return(false); }