Пример #1
0
 internal void AddActiveAudio(IPlaybackEngine audio)
 {
     lock (_activeStreams)
     {
         _activeStreams.Add(audio);
         _resetEvents[audio] = new ManualResetEventSlim();
     }
 }
Пример #2
0
 internal void RemoveActiveAudio(IPlaybackEngine audio)
 {
     lock (_resetEvents)
         lock (_activeStreams)
         {
             var resetEvent = _resetEvents[audio];
             resetEvent.Set();
             _activeStreams.Remove(audio);
             _resetEvents.Remove(audio);
             resetEvent.Dispose();
         }
 }
Пример #3
0
        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/;");
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }