internal void AddActiveAudio(IPlaybackEngine audio) { lock (_activeStreams) { _activeStreams.Add(audio); _resetEvents[audio] = new ManualResetEventSlim(); } }
internal void RemoveActiveAudio(IPlaybackEngine audio) { lock (_resetEvents) lock (_activeStreams) { var resetEvent = _resetEvents[audio]; resetEvent.Set(); _activeStreams.Remove(audio); _resetEvents.Remove(audio); resetEvent.Dispose(); } }
public static void Initialize() { /// would use MEF but... /// Engine = new Hanasu.Playback.FMODPlayback.FMODAudioPlaybackEngine(); Engine.MetadataChanged += Engine_MetadataChanged; Task.Delay(1000) .ContinueWith(x => { Engine.Volume = 1.0F; }); StartPlaying("http://173.192.205.178:80"); //StartPlaying("http://itori.animenfo.com:443/;"); }
private void BeginPlayback([NotNull] string url, [NotNull] IPlaybackEngine playbackEngine) { if (_currentChannel != null && _currentChannel.IsActive) Stop(); _url = url; _playbackEngine = playbackEngine; _playbackEngine.ChannelSwitched += PlaybackEngineOnChannelSwitched; _playbackEngine.End += PlaybackEngineOnEnd; _playbackEngine.Initialize(_bassEngine, _plugins); TAG_INFO tags; _currentChannel = _playbackEngine.PlayChannel(url, out tags); _mixer = new Mix(flags:BassMixFlags.Software | BassMixFlags.Nonstop) {Equalizer = _equalizer}; _currentChannel.Mix = _mixer; _visualHelper.Channel = _mixer; _mixer.Play(); _play.Publish(EventArgs.Empty); _tagInfo = PublishTitle(tags); }
private void BeginPlayback([NotNull] string url, [NotNull] IPlaybackEngine playbackEngine) { if (_currentChannel != null && _currentChannel.IsActive) Stop(); _url = url; _playbackEngine = playbackEngine; _playbackEngine.ChannelSwitched += PlaybackEngineOnChannelSwitched; _playbackEngine.End += PlaybackEngineOnEnd; _playbackEngine.Initialize(_bassEngine, _plugins); TAG_INFO tags; _currentChannel = _playbackEngine.PlayChannel(url, out tags); _mixer = new Mix(flags:BassMixFlags.Software | BassMixFlags.Nonstop) {Equalizer = _internalEqualizer}; _currentChannel.Mix = _mixer; //_visualHelper.Channel = _mixer; _mixer.Play(); OnPropertyChanged(() => Playing); _play.Publish(EventArgs.Empty); _tagInfo = BassTag.GetInfo(PublishTitle(new BassTag(tags))); _internalPlayerStream.Channel = _currentChannel; OnChannelSwitchEvent(_currentChannel); }