protected LOOP_MODE mLoopMode; // 循环方式 public AnimControl() { mInterval = 0.033f; mEndIndex = -1; mPlayDirection = true; mAutoResetIndex = true; mUseTextureSelfSize = true; mLoopMode = LOOP_MODE.ONCE; mPlayState = PLAY_STATE.STOP; }
public void SetLoopMode(LOOP_MODE mode) { int handle = this.Stream; switch (mode) { case LOOP_MODE.TRACK: Bass.BASS_ChannelFlags(handle, BASSFlag.BASS_SAMPLE_LOOP, BASSFlag.BASS_SAMPLE_LOOP); break; case LOOP_MODE.NONE: case LOOP_MODE.PLAYLIST: if ((Bass.BASS_ChannelFlags(handle, BASSFlag.BASS_DEFAULT, BASSFlag.BASS_DEFAULT) & BASSFlag.BASS_SAMPLE_LOOP) == BASSFlag.BASS_SAMPLE_LOOP) { Bass.BASS_ChannelFlags(handle, BASSFlag.BASS_DEFAULT, BASSFlag.BASS_SAMPLE_LOOP); } break; } this.LoopMode = mode; }
private void Instance_StreamEnded() { LOOP_MODE loopMode = AudioControllerService.Current.LoopMode; int currentTrackIndex = TracklistProvider.Instance.CurrentIndex; if (loopMode != LOOP_MODE.TRACK) { bool isLastTrack = (currentTrackIndex + 1) < TracklistProvider.Instance.Tracks.Count == false; if (isLastTrack) { if (loopMode == LOOP_MODE.PLAYLIST) { if (TracklistProvider.Instance.Tracks.Count > 0) { TracklistProvider.Instance.SetCurrentIndex(0); AudioControllerService.Current.LoadFile(TracklistProvider.Instance.GetCurrentTrack().Location); } } else { AudioControllerService.Current.Stop(); } } const bool autoForwardTracklist = true; if (autoForwardTracklist) { if (isLastTrack == false) { TracklistProvider.Instance.SetCurrentIndex(currentTrackIndex + 1); AudioControllerService.Current.LoadFile(TracklistProvider.Instance.GetCurrentTrack().Location); } } } }
public void setLoop(LOOP_MODE loop) { mLoopMode = loop; }
public void setLoop(LOOP_MODE loop) { mControl.setLoop(loop); }