Ejemplo n.º 1
0
        internal void Convert(MusicService job)
        {
            var convertJob = new XConvertJob();

            convertJob.SourceFileName        = job.SourceFile;
            convertJob.AlternativeOutputPath = job.DestinationFile;
            convertJob.DestinationFileType   = job.DestinationFileType;
            DoWork(convertJob);
        }
Ejemplo n.º 2
0
 private static WaveFileReader GetWavReader(XConvertJob param)
 {
     if (param.SourceData != null)
     {
         var mStream = new MemoryStream(param.SourceData.Length);
         return(new WaveFileReader(mStream));
     }
     return(new WaveFileReader(param.SourceFileName));
 }
Ejemplo n.º 3
0
        private static void DoWork(XConvertJob param)
        {
            switch (param.SourceFileType)
            {
            case XFileType.Wav:
                switch (param.DestinationFileType.Value)
                {
                case XFileType.Mp3:
                    WavToMp3(param);
                    break;

                case XFileType.Wma:
                    //WavToWma(param);
                    break;

                default:
                    break;
                }
                break;

            case XFileType.Mp3:
                switch (param.DestinationFileType.Value)
                {
                case XFileType.Wav:
                    Mp3ToWav(param);
                    break;

                case XFileType.Wma:
                    //Mp3ToWma(param);
                    break;

                default:
                    break;
                }
                break;

            case XFileType.Wma:
                switch (param.DestinationFileType.Value)
                {
                case XFileType.Wav:
                    //WmaToWav(param);
                    break;

                case XFileType.Mp3:
                    WmaToMp3(param);
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }
        }
Ejemplo n.º 4
0
        private static void WavToMp3(XConvertJob param)
        {
            var savetofilename = string.IsNullOrEmpty(param.AlternativeOutputPath) ? param.SourceFileName.ReplaceExtension(XFileType.Mp3) :
                                 param.AlternativeOutputPath;

            using (var rdr = GetWavReader(param))
                using (var wtr = new LameMP3FileWriter(savetofilename, rdr.WaveFormat, LAMEPreset.VBR_90))
                {
                    rdr.CopyTo(wtr);
                }
            param.ResulFileName = savetofilename;
        }
Ejemplo n.º 5
0
 private static void Mp3ToWav(XConvertJob param)
 {
     //using (var fs = new FileStream(param.AlternativeOutputPath, FileMode.Create))
     //{ }
     using (var reader = GetMp3Reader(param))
     {
         using (WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader))
         {
             WaveFileWriter.CreateWaveFile(param.AlternativeOutputPath, pcmStream);
         }
     }
 }
Ejemplo n.º 6
0
        private static void WmaToMp3(XConvertJob param)
        {
            var targetFilename = string.IsNullOrEmpty(param.AlternativeOutputPath) ? param.SourceFileName.GenerateOutPutPath(XFileType.Mp3) :
                                 param.AlternativeOutputPath;

            if (param.SourceData != null)
            {
                File.WriteAllBytes(param.SourceFileName, param.SourceData);
            }
            using (var reader = new NAudio.Wave.AudioFileReader(param.SourceFileName))
                using (var writer = new NAudio.Lame.LameMP3FileWriter(targetFilename, reader.WaveFormat, NAudio.Lame.LAMEPreset.STANDARD))
                {
                    reader.CopyTo(writer);
                }
            param.ResulFileName = targetFilename;
        }
Ejemplo n.º 7
0
        public XJobResult Convert(string srcPath, XFileType dst)
        {
            var         res = new XJobResult();
            XConvertJob p   = new XConvertJob();

            p.ISourceFileType       = srcPath.RetrieveExtension();
            p.AlternativeOutputPath = srcPath.GenerateGuidPath(dst);
            p.DestinationFileType   = dst;
            p.SourceFileName        = srcPath;
            res.EndTime             = DateTime.Now;
            Convert(p);
            XMusicLogger.AddLog($"{DateTime.Now} : Converting {srcPath} to {p.AlternativeOutputPath}");
            res.OutputData = File.ReadAllBytes(p.AlternativeOutputPath);
            File.Delete(p.AlternativeOutputPath);
            res.TempFileName = p.AlternativeOutputPath;
            return(res);
        }
Ejemplo n.º 8
0
 private void Convert(XConvertJob param)
 {
     DoWork(param);
 }