public void Setup()
        {
            _tempFolder        = new TemporaryFolder("ConvertMediaDlgViewModelTests");
            _testAudioFileName = MediaFileInfoTests.GetLongerTestAudioFile();
            var destFile = Path.Combine(_tempFolder.Path, "test.wav");

            File.Move(_testAudioFileName, destFile);
            _testAudioFileName = destFile;

            _model = new ConvertMediaDlgViewModel(_testAudioFileName,
                                                  ConvertMediaDlg.GetFactoryExtractToMp3AudioConversionName());
        }
示例#2
0
        /// ------------------------------------------------------------------------------------
        private static bool DoPcmConversion(string inputMediaFile, string outputAudioFile,
                                            WaveFormat preferredOutputFormat)
        {
            string output;
            var    result = MPlayerHelper.CreatePcmAudioFromMediaFile(inputMediaFile,
                                                                      outputAudioFile, preferredOutputFormat, out output);

            if ((result & MPlayerHelper.ConversionResult.FinishedConverting) != 0)
            {
                // Possibly succeeded
                if ((result & MPlayerHelper.ConversionResult.PossibleError) > 0)
                {
                    ReportPossibleConversionProblem(output);
                }
                return(true);
            }

            // If ffmpeg is available, then try it as a fallback, since Mplayer had problems.
            if (!FFmpegDownloadHelper.DoesFFmpegForSayMoreExist)
            {
                return(false);
            }

            var model = new ConvertMediaDlgViewModel(inputMediaFile,
                                                     ConvertMediaDlg.GetFactoryExtractToStandardPcmConversionName());

            model.BeginConversion(null, outputAudioFile, preferredOutputFormat);

            var finishedState = model.ConversionState & ConvertMediaUIState.AllFinishedStates;

            if (finishedState == ConvertMediaUIState.FinishedConverting)
            {
                if ((model.ConversionState & ConvertMediaUIState.PossibleError) > 0)
                {
                    ReportPossibleConversionProblem(model.ConversionOutput);
                }
                return(File.Exists(outputAudioFile));
            }

            if (finishedState == ConvertMediaUIState.ConversionFailed)
            {
                var e = model.ConversionException;
                if (e != null)
                {
                    throw e;
                }
            }

            return(false);
        }