public PlayRadioEventArgs(RadioQuality quality, RadioEntry radio)
 {
     Radio = radio;
     Quality = quality;
 }
 public void Start(RadioQuality quality)
 {
     _mediaPlayer.Play(quality, null);
 }
        public PlayerStade Play(RadioQuality radio, IScript script)
        {
            if(radio.IsEmpty || string.IsNullOrWhiteSpace(radio.Url))
                return new PlayerStade(PlayerErrorStade.NoQuality, null);

            try
            {
                _script = script;
                string url = radio.Url;
                var lazyEngine = _playbackEngines.FirstOrDefault(en => en.Metadata.Name == string.Empty);
                if (lazyEngine == null) return new PlayerStade(PlayerErrorStade.NoEngine, null);

                IPlaybackEngine engine = lazyEngine.Value;

                if (url[0] == '[')
                {
                    int index = url.IndexOf(']');
                    if (index != -1)
                    {
                        string[] values = url.Split(new[] {']'}, 2, StringSplitOptions.RemoveEmptyEntries);
                        values[0] = values[0].Substring(1);

                        var tempEngine = _playbackEngines.FirstOrDefault(en => en.Metadata.Name == values[0]);
                        if (tempEngine != null)
                        {
                            try
                            {
                                engine = tempEngine.Value;
                                url = values[1];
                            }
                            catch (Exception)
                            {
                                url = radio.Url;
                            }
                        }
                    }
                }

                BeginPlayback(url, engine);
            }
            catch (BassException bassException)
            {
                return new PlayerStade(PlayerErrorStade.Error, bassException);
            }

            _isPlaying = true;
            return new PlayerStade(PlayerErrorStade.Success, null);
        }
        public void Play(RadioQuality radio, IScript script)
        {
            _script = script;
            string url = radio.Url;
            IPlaybackEngine engine = _playbackEngines.First(en => en.Metadata.Name == string.Empty).Value;

            if (url[0] == '[')
            {
                int index = url.IndexOf(']');
                if (index != -1)
                {
                    string[] values = url.Split(new[] {']'}, 2, StringSplitOptions.RemoveEmptyEntries);
                    values[0] = values[0].Substring(1);

                    var tempEngine = _playbackEngines.FirstOrDefault(en => en.Metadata.Name == values[0]);
                    if (tempEngine != null)
                    {
                        try
                        {
                            engine = tempEngine.Value;
                            url = values[1];
                        }
                        catch (Exception)
                        {
                            url = radio.Url;
                        }
                    }
                }
            }

            BeginPlayback(url, engine);
        }