Exemplo n.º 1
0
 static async Task <bool> To_MP3(int File_Number, string To_Dir, bool IsFromFileDelete)
 {
     if (!File.Exists(From_Files[File_Number]))
     {
         return(false);
     }
     try
     {
         string To_Audio_File = To_Dir + "\\" + Path.GetFileNameWithoutExtension(From_Files[File_Number]) + ".mp3";
         await Task.Run(() =>
         {
             string Ex = Path.GetExtension(From_Files[File_Number]);
             if (Ex == ".ogg")
             {
                 using (NAudio.Vorbis.VorbisWaveReader reader = new NAudio.Vorbis.VorbisWaveReader(From_Files[File_Number]))
                     using (LameMP3FileWriter wtr = new LameMP3FileWriter(To_Audio_File, reader.WaveFormat, 128))
                         reader.CopyTo(wtr);
             }
             else if (Ex == ".wav")
             {
                 using (WaveFileReader reader = new WaveFileReader(From_Files[File_Number]))
                     using (LameMP3FileWriter wtr = new LameMP3FileWriter(To_Audio_File, reader.WaveFormat, 128))
                         reader.CopyTo(wtr);
             }
             else if (Ex == ".flac")
             {
                 using (NAudio.Flac.FlacReader reader = new NAudio.Flac.FlacReader(From_Files[File_Number]))
                     using (LameMP3FileWriter wtr = new LameMP3FileWriter(To_Audio_File, reader.WaveFormat, 128))
                         reader.CopyTo(wtr);
             }
             else if (Ex == ".aac" || Ex == ".wma" || Ex == ".mp4" || Ex == ".webm")
             {
                 using (MediaFoundationReader reader = new MediaFoundationReader(From_Files[File_Number]))
                     using (LameMP3FileWriter wtr = new LameMP3FileWriter(To_Audio_File, reader.WaveFormat, 128))
                         reader.CopyTo(wtr);
             }
             else
             {
                 Un4seen.Bass.Misc.EncoderLAME mc = new Un4seen.Bass.Misc.EncoderLAME(0);
                 mc.EncoderDirectory = Voice_Set.Special_Path + "/Encode_Mp3";
                 mc.InputFile        = From_Files[File_Number];
                 mc.OutputFile       = To_Audio_File;
                 mc.LAME_Bitrate     = (int)Un4seen.Bass.Misc.EncoderLAME.BITRATE.kbps_160;
                 mc.LAME_Mode        = Un4seen.Bass.Misc.EncoderLAME.LAMEMode.Default;
                 mc.LAME_Quality     = Un4seen.Bass.Misc.EncoderLAME.LAMEQuality.Q2;
                 Un4seen.Bass.Misc.BaseEncoder.EncodeFile(mc, null, true, false, true);
             }
             if (IsFromFileDelete)
             {
                 File.Delete(From_Files[File_Number]);
             }
         });
     }
     catch
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 2
0
 public byte[] ConvertToMp3(string file, int bitrate = 128)
 {
     using (var retMs = new MemoryStream())
         using (var rdr = new MediaFoundationReader(file))
             using (var wtr = new NAudio.Lame.LameMP3FileWriter(retMs, rdr.WaveFormat, bitrate))
             {
                 rdr.CopyTo(wtr);
                 return(retMs.ToArray());
             }
 }
Exemplo n.º 3
0
        internal static void RecordStream()
        {
            if (!SongInfo.IsContinuous && !Directory.Exists($".\\{SongInfo.RadioStation.Name}\\"))
            {
                Directory.CreateDirectory($".\\{Regex.Replace(SongInfo.RadioStation.Name, "\\/", "-")}\\");
            }

            string Mp3Name = $"{Regex.Replace(SongInfo.CurrentSong.Artist, "\\/", "-")} - {Regex.Replace(SongInfo.CurrentSong.Title, "\\/", "-")}";
            string Mp3Path = $"{TrimInvalidChars(SongInfo.RadioStation.Name)}{(SongInfo.IsContinuous ? $"{string.Empty}" : $"\\{TrimInvalidChars(Mp3Name)}")}";

            using (Mp3Reader = new MediaFoundationReader(SongInfo.RadioStation.Endpoints.Stream))
                using (Mp3Writer = new LameMP3FileWriter($".\\{Mp3Path}.mp3", Mp3Reader.WaveFormat, SongInfo.Bitrate, SongInfo.CurrentSong))
                    Mp3Reader.CopyTo(Mp3Writer);
        }
Exemplo n.º 4
0
        public ReusablePlayer(string Path)
        {
            FilePath = Path;

            if (System.IO.File.Exists(Path))
            {
                switch (System.IO.Path.GetExtension(Path.ToLower()))
                {
                default:
                    MediaFoundationReader mfr = new MediaFoundationReader(Path);
                    mfr.Position = 0;
                    System.IO.MemoryStream ms = new System.IO.MemoryStream();
                    ms.Position = 0;
                    mfr.CopyTo(ms);
                    mfr.Dispose();
                    memory = ms.ToArray();
                    format = mfr.WaveFormat;
                    ms.Dispose();
                    break;
                }
            }
        }
Exemplo n.º 5
0
 // Convert M4A to MP3 using libmp3lame library
 public static void M4AToMP3(string m4aFileName, string mp3FileName, int bitRate = 128)
 {
     using (var reader = new MediaFoundationReader(m4aFileName))
         using (var writer = new LameMP3FileWriter(mp3FileName, reader.WaveFormat, bitRate))
             reader.CopyTo(writer);
 }