Example #1
0
        public void CargarCancion(string cual)
        {
            switch (Path.GetExtension(cual))
            {
            case ".mp3":
                CSCore.Tags.ID3.ID3v2 mp3tag = CSCore.Tags.ID3.ID3v2.FromFile(cual);
                tags          = new CSCore.Tags.ID3.ID3v2QuickInfo(mp3tag);
                FormatoSonido = FormatoSonido.MP3;
                break;

            case ".flac":
                _ficheroFLAC = new FLACFile(cual, true);
                CSCore.Codecs.FLAC.FlacFile ff = new CSCore.Codecs.FLAC.FlacFile(cual);
                FormatoSonido = FormatoSonido.FLAC;
                break;

            case ".ogg":
                FormatoSonido = FormatoSonido.OGG;
                break;

            default:
                break;
            }
            try
            {
                Log.Instance.ImprimirMensaje("Intentando cargar " + cual, TipoMensaje.Info);
                if (Path.GetExtension(cual) == ".ogg")
                {
                    FileStream stream = new FileStream(cual, FileMode.Open);
                    NVorbis = new NVorbisSource(stream);
                    _sonido = NVorbis.ToWaveSource(16);
                }
                else
                {
                    _sonido            = CSCore.Codecs.CodecFactory.Instance.GetCodec(cual).ToSampleSource().ToStereo().ToWaveSource(16);
                    notificationStream = new SingleBlockNotificationStream(_sonido.ToSampleSource());
                    //_salida.Initialize(notificationStream.ToWaveSource(16));
                    FileInfo info = new FileInfo(cual);
                    tamFich = info.Length;
                }
                _salida          = new WasapiOut(false, AudioClientShareMode.Shared, 100);
                _sonido.Position = 0;
                _salida.Initialize(_sonido);
                Log.Instance.ImprimirMensaje("Cargado correctamente" + cual, TipoMensaje.Correcto);
            }
            catch (IOException)
            {
                Log.Instance.ImprimirMensaje("No se puede reproducir el fichero porque está siendo utilizado por otro proceso", TipoMensaje.Error);
                throw;
            }
            catch (Exception)
            {
                Log.Instance.ImprimirMensaje("No se encuentra el fichero", TipoMensaje.Advertencia);
                throw;
            }
        }
Example #2
0
        public LectorMetadatos(string s)
        {
            switch (Path.GetExtension(s))
            {
            case ".mp3":
                ID3v2 mp3tag = ID3v2.FromFile(s);
                _mp3iD3 = new ID3v2QuickInfo(mp3tag);
                Artista = _mp3iD3.LeadPerformers;
                Titulo  = _mp3iD3.Title;
                break;

            case ".flac":
                _FLACfile = new FLACFile(s, true);
                Artista   = _FLACfile.ARTIST;
                Titulo    = _FLACfile.TITLE;
                break;

            case ".ogg":
                _vorbisReader = new VorbisReader(s);
                foreach (String meta in _vorbisReader.Comments)
                {
                    if (meta.Contains("TITLE="))
                    {
                        Titulo = meta.Replace("TITLE=", "");
                    }
                    else if (meta.Contains("TITLE=".ToLower()))
                    {
                        Titulo = meta.Replace("title=", "");
                    }
                }
                foreach (String meta in _vorbisReader.Comments)
                {
                    if (meta.Contains("ARTIST="))
                    {
                        Artista = meta.Replace("ARTIST=", "");
                    }
                    else if (meta.Contains("ARTIST=".ToLower()))
                    {
                        Artista = meta.Replace("artist=", "");
                    }
                }
                Cerrar();
                break;

            default:
                break;
            }
        }