本文整理汇总了C#中Subtitle.ChangeFrameRate方法的典型用法代码示例。如果您正苦于以下问题:C# Subtitle.ChangeFrameRate方法的具体用法?C# Subtitle.ChangeFrameRate怎么用?C# Subtitle.ChangeFrameRate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Subtitle
的用法示例。
在下文中一共展示了Subtitle.ChangeFrameRate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BatchConvertSave
internal static bool BatchConvertSave(string toFormat, string offset, Encoding targetEncoding, string outputFolder, int count, ref int converted, ref int errors, IList<SubtitleFormat> formats, string fileName, Subtitle sub, SubtitleFormat format, bool overwrite, string pacCodePage, double? targetFrameRate)
{
double oldFrameRate = Configuration.Settings.General.CurrentFrameRate;
try
{
// adjust offset
if (!string.IsNullOrEmpty(offset) && (offset.StartsWith("/offset:") || offset.StartsWith("offset:")))
{
string[] parts = offset.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length == 5)
{
try
{
var ts = new TimeSpan(0, int.Parse(parts[1].TrimStart('-')), int.Parse(parts[2]), int.Parse(parts[3]), int.Parse(parts[4]));
if (parts[1].StartsWith('-'))
sub.AddTimeToAllParagraphs(ts.Negate());
else
sub.AddTimeToAllParagraphs(ts);
}
catch
{
Console.Write(" (unable to read offset " + offset + ")");
}
}
}
// adjust frame rate
if (targetFrameRate.HasValue)
{
sub.ChangeFrameRate(Configuration.Settings.General.CurrentFrameRate, targetFrameRate.Value);
Configuration.Settings.General.CurrentFrameRate = targetFrameRate.Value;
}
bool targetFormatFound = false;
string outputFileName;
foreach (SubtitleFormat sf in formats)
{
if (sf.IsTextBased && (sf.Name.Replace(" ", string.Empty).Equals(toFormat, StringComparison.OrdinalIgnoreCase) || sf.Name.Replace(" ", string.Empty).Equals(toFormat.Replace(" ", string.Empty), StringComparison.OrdinalIgnoreCase)))
{
targetFormatFound = true;
sf.BatchMode = true;
outputFileName = FormatOutputFileNameForBatchConvert(fileName, sf.Extension, outputFolder, overwrite);
Console.Write("{0}: {1} -> {2}...", count, Path.GetFileName(fileName), outputFileName);
if (sf.IsFrameBased && !sub.WasLoadedWithFrameNumbers)
sub.CalculateFrameNumbersFromTimeCodesNoCheck(Configuration.Settings.General.CurrentFrameRate);
else if (sf.IsTimeBased && sub.WasLoadedWithFrameNumbers)
sub.CalculateTimeCodesFromFrameNumbers(Configuration.Settings.General.CurrentFrameRate);
if ((sf.GetType() == typeof(WebVTT) || sf.GetType() == typeof(WebVTTFileWithLineNumber)))
{
targetEncoding = Encoding.UTF8;
}
if (sf.GetType() == typeof(ItunesTimedText) || sf.GetType() == typeof(ScenaristClosedCaptions) || sf.GetType() == typeof(ScenaristClosedCaptionsDropFrame))
{
Encoding outputEnc = new UTF8Encoding(false); // create encoding with no BOM
using (var file = new StreamWriter(outputFileName, false, outputEnc)) // open file with encoding
{
file.Write(sub.ToText(sf));
} // save and close it
}
else if (targetEncoding == Encoding.UTF8 && (format.GetType() == typeof(TmpegEncAW5) || format.GetType() == typeof(TmpegEncXml)))
{
Encoding outputEnc = new UTF8Encoding(false); // create encoding with no BOM
using (var file = new StreamWriter(outputFileName, false, outputEnc)) // open file with encoding
{
file.Write(sub.ToText(sf));
} // save and close it
}
else
{
try
{
File.WriteAllText(outputFileName, sub.ToText(sf), targetEncoding);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
errors++;
return false;
}
}
if (format.GetType() == typeof(Sami) || format.GetType() == typeof(SamiModern))
{
var sami = (Sami)format;
foreach (string className in Sami.GetStylesFromHeader(sub.Header))
{
var newSub = new Subtitle();
foreach (Paragraph p in sub.Paragraphs)
{
if (p.Extra != null && p.Extra.Trim().Equals(className.Trim(), StringComparison.OrdinalIgnoreCase))
newSub.Paragraphs.Add(p);
}
if (newSub.Paragraphs.Count > 0 && newSub.Paragraphs.Count < sub.Paragraphs.Count)
{
string s = fileName;
if (s.LastIndexOf('.') > 0)
s = s.Insert(s.LastIndexOf('.'), "_" + className);
else
//.........这里部分代码省略.........
示例2: buttonConvert_Click
//.........这里部分代码省略.........
item.SubItems[3].Text = Configuration.Settings.Language.BatchConvert.Ocr;
using (var vobSubOcr = new VobSubOcr())
{
vobSubOcr.InitializeBatch(fileName, Configuration.Settings.VobSubOcr);
sub = vobSubOcr.SubtitleFromOcr;
}
}
if (comboBoxSubtitleFormats.Text == AdvancedSubStationAlpha.NameOfFormat && _assStyle != null)
{
sub.Header = _assStyle;
}
else if (comboBoxSubtitleFormats.Text == SubStationAlpha.NameOfFormat && _ssaStyle != null)
{
sub.Header = _ssaStyle;
}
bool skip = CheckSkipFilter(fileName, format, sub);
if (skip)
{
item.SubItems[3].Text = Configuration.Settings.Language.BatchConvert.FilterSkipped;
}
else
{
foreach (Paragraph p in sub.Paragraphs)
{
if (checkBoxRemoveTextForHI.Checked)
{
p.Text = _removeTextForHearingImpaired.RemoveTextFromHearImpaired(p.Text);
}
if (checkBoxRemoveFormatting.Checked)
{
p.Text = HtmlUtil.RemoveHtmlTags(p.Text, true);
}
}
sub.RemoveEmptyLines();
if (checkBoxFixCasing.Checked)
{
_changeCasing.FixCasing(sub, LanguageAutoDetect.AutoDetectGoogleLanguage(sub));
_changeCasingNames.Initialize(sub);
_changeCasingNames.FixCasing();
}
double fromFrameRate;
double toFrameRate;
if (double.TryParse(comboBoxFrameRateFrom.Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out fromFrameRate) &&
double.TryParse(comboBoxFrameRateTo.Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out toFrameRate))
{
sub.ChangeFrameRate(fromFrameRate, toFrameRate);
}
if (timeUpDownAdjust.TimeCode.TotalMilliseconds > 0.00001)
{
var totalMilliseconds = timeUpDownAdjust.TimeCode.TotalMilliseconds;
if (radioButtonShowEarlier.Checked)
totalMilliseconds *= -1;
sub.AddTimeToAllParagraphs(TimeSpan.FromMilliseconds(totalMilliseconds));
}
while (worker1.IsBusy && worker2.IsBusy && worker3.IsBusy)
{
Application.DoEvents();
System.Threading.Thread.Sleep(100);
}
var parameter = new ThreadDoWorkParameter(checkBoxFixCommonErrors.Checked, checkBoxMultipleReplace.Checked, checkBoxSplitLongLines.Checked, checkBoxAutoBalance.Checked, checkBoxSetMinimumDisplayTimeBetweenSubs.Checked, item, sub, GetCurrentSubtitleFormat(), GetCurrentEncoding(), Configuration.Settings.Tools.BatchConvertLanguage, fileName, toFormat, format);
if (!worker1.IsBusy)
worker1.RunWorkerAsync(parameter);
else if (!worker2.IsBusy)
worker2.RunWorkerAsync(parameter);
else if (!worker3.IsBusy)
worker3.RunWorkerAsync(parameter);
}
}
}
catch
{
IncrementAndShowProgress();
}
index++;
}
while (worker1.IsBusy || worker2.IsBusy || worker3.IsBusy)
{
try
{
Application.DoEvents();
}
catch
{
}
System.Threading.Thread.Sleep(100);
}
_converting = false;
labelStatus.Text = string.Empty;
progressBar1.Visible = false;
TaskbarList.SetProgressState(Handle, TaskbarButtonProgressFlags.NoProgress);
buttonConvert.Enabled = true;
buttonCancel.Enabled = true;
groupBoxOutput.Enabled = true;
groupBoxConvertOptions.Enabled = true;
buttonInputBrowse.Enabled = true;
buttonSearchFolder.Enabled = true;
comboBoxFilter.Enabled = true;
textBoxFilter.Enabled = true;
}
示例3: BatchConvertSave
internal static bool BatchConvertSave(string targetFormat, string offset, Encoding targetEncoding, string outputFolder, int count, ref int converted, ref int errors, IEnumerable<SubtitleFormat> formats, string fileName, Subtitle sub, SubtitleFormat format, bool overwrite, int pacCodePage, double? targetFrameRate, IEnumerable<string> multipleReplaceImportFiles, bool removeTextForHi, bool fixCommonErrors, bool redoCasing)
{
double oldFrameRate = Configuration.Settings.General.CurrentFrameRate;
try
{
// adjust offset
if (!string.IsNullOrWhiteSpace(offset))
{
var offsetSplitChars = new[] { ':', '.', ',' };
var parts = offset.Split(offsetSplitChars, StringSplitOptions.RemoveEmptyEntries);
while (parts.Length > 1 && parts.Length < 4)
{
offset = "0:" + offset;
parts = offset.Split(offsetSplitChars, StringSplitOptions.RemoveEmptyEntries);
}
if (parts.Length == 4)
{
try
{
var ts = new TimeSpan(0, int.Parse(parts[0].TrimStart('-')), int.Parse(parts[1]), int.Parse(parts[2]), int.Parse(parts[3]));
if (parts[0].StartsWith('-'))
sub.AddTimeToAllParagraphs(ts.Negate());
else
sub.AddTimeToAllParagraphs(ts);
parts = null;
}
catch
{
// ignored
}
}
if (parts != null)
{
Console.Write(" (unable to read offset " + offset + ")");
}
}
// adjust frame rate
if (targetFrameRate.HasValue)
{
sub.ChangeFrameRate(Configuration.Settings.General.CurrentFrameRate, targetFrameRate.Value);
Configuration.Settings.General.CurrentFrameRate = targetFrameRate.Value;
}
if (removeTextForHi)
{
var hiSettings = new Core.Forms.RemoveTextForHISettings();
var hiLib = new Core.Forms.RemoveTextForHI(hiSettings);
foreach (var p in sub.Paragraphs)
{
p.Text = hiLib.RemoveTextFromHearImpaired(p.Text);
}
}
if (fixCommonErrors)
{
using (var fce = new FixCommonErrors { BatchMode = true })
{
for (int i = 0; i < 3; i++)
{
fce.RunBatch(sub, format, targetEncoding, Configuration.Settings.Tools.BatchConvertLanguage);
sub = fce.FixedSubtitle;
}
}
}
if (redoCasing)
{
using (var changeCasing = new ChangeCasing())
{
changeCasing.FixCasing(sub, LanguageAutoDetect.AutoDetectGoogleLanguage(sub));
}
using (var changeCasingNames = new ChangeCasingNames())
{
changeCasingNames.Initialize(sub);
changeCasingNames.FixCasing();
}
}
if (multipleReplaceImportFiles != null && multipleReplaceImportFiles.Count() > 0)
{
using (var mr = new MultipleReplace())
{
mr.RunFromBatch(sub, multipleReplaceImportFiles);
sub = mr.FixedSubtitle;
sub.RemoveParagraphsByIndices(mr.DeleteIndices);
}
}
bool targetFormatFound = false;
string outputFileName;
foreach (SubtitleFormat sf in formats)
{
if (sf.IsTextBased && sf.Name.Replace(" ", string.Empty).Equals(targetFormat.Replace(" ", string.Empty), StringComparison.OrdinalIgnoreCase))
{
targetFormatFound = true;
sf.BatchMode = true;
outputFileName = FormatOutputFileNameForBatchConvert(fileName, sf.Extension, outputFolder, overwrite);
Console.Write("{0}: {1} -> {2}...", count, Path.GetFileName(fileName), outputFileName);
if (sf.IsFrameBased && !sub.WasLoadedWithFrameNumbers)
sub.CalculateFrameNumbersFromTimeCodesNoCheck(Configuration.Settings.General.CurrentFrameRate);
else if (sf.IsTimeBased && sub.WasLoadedWithFrameNumbers)
sub.CalculateTimeCodesFromFrameNumbers(Configuration.Settings.General.CurrentFrameRate);
//.........这里部分代码省略.........