Beispiel #1
0
        public Stream Trim(Stream input, TrimOptions options)
        {
            if (input == null)
            {
                throw new ArgumentNullException("input");
            }

            string outputExtension = GetFileExtension(options.OutputFileInfo.FileType);
            string inputExtensions = GetFileExtension(options.InputFileInfo.FileType);

            var inputFileName = Path.Combine(TempDir, Guid.NewGuid() + inputExtensions);
            input.WriteToFile(inputFileName);
            var outputFileName = Path.Combine(TempDir, Guid.NewGuid() + outputExtension);
            var cmdLineArgs = BuildTrimCommandLineArgs(inputFileName, outputFileName, options);
            var fileName = Path.GetFullPath(Path.Combine(SoxDirectory, "sox.exe"));
            RunSox(fileName, cmdLineArgs);
            File.Delete(inputFileName);
            return new DeleteFileStream(outputFileName);
        }
Beispiel #2
0
        public Stream Trim(Stream input, TrimOptions options)
        {
            if (input == null)
            {
                throw new ArgumentNullException("input");
            }

            string outputExtension = GetFileExtension(options.OutputFileInfo.FileType);
            string inputExtensions = GetFileExtension(options.InputFileInfo.FileType);

            var inputFileName = Path.Combine(TempDir, Guid.NewGuid() + inputExtensions);

            input.WriteToFile(inputFileName);
            var outputFileName = Path.Combine(TempDir, Guid.NewGuid() + outputExtension);
            var cmdLineArgs    = BuildTrimCommandLineArgs(inputFileName, outputFileName, options);
            var fileName       = Path.GetFullPath(Path.Combine(SoxDirectory, "sox.exe"));

            RunSox(fileName, cmdLineArgs);
            File.Delete(inputFileName);
            return(new DeleteFileStream(outputFileName));
        }
Beispiel #3
0
        private string BuildTrimCommandLineArgs(string inputFileName, string outputFileName, TrimOptions options)
        {
            StringBuilder result = new StringBuilder();

            result.Append(BuildCommandLineArgs(options.InputFileInfo));
            result.Append(" " + inputFileName);
            result.Append(BuildCommandLineArgs(options.OutputFileInfo));
            result.Append(" " + outputFileName);
            result.Append(" trim");
            result.Append(" " + options.StartTime.ToCommandLineArg());
            if (options.Length != null && options.End != null)
            {
                throw new Exception("Only length or end is allowed not both");
            }
            if (options.Length != null)
            {
                result.Append(" " + options.Length.ToCommandLineArg());
            }
            else if (options.End != null)
            {
                result.Append(" =" + options.End.ToCommandLineArg());
            }
            return(result.ToString());
        }
Beispiel #4
0
 private string BuildTrimCommandLineArgs(string inputFileName, string outputFileName, TrimOptions options)
 {
     StringBuilder result = new StringBuilder();
     result.Append(BuildCommandLineArgs(options.InputFileInfo));
     result.Append(" " + inputFileName);
     result.Append(BuildCommandLineArgs(options.OutputFileInfo));
     result.Append(" " + outputFileName);
     result.Append(" trim");
     result.Append(" " + options.StartTime.ToCommandLineArg());
     if (options.Length != null && options.End != null)
     {
         throw new Exception("Only length or end is allowed not both");
     }
     if (options.Length != null)
     {
         result.Append(" " + options.Length.ToCommandLineArg());
     }
     else if (options.End != null)
     {
         result.Append(" =" + options.End.ToCommandLineArg());
     }
     return result.ToString();
 }