我用MediaInfo包装器制作了windows窗体应用程序,我找不到任何好的解决方案来获取所有字幕并将它们放入数组或字符串中。
因为如果我硬编码subtitle1,subtitle2,subtitle3,subtitle4等.而且根本没有字幕,也没有那么多我硬编码的,我得到了错误:
Input string was not in a correct format
所以,我如何获得字幕,并将它们列在字符串或数组中,就像这样:Eng,Fra,Spa,没有硬代码和上面的错误。(如果没有替补,我每次都会犯这个错误)。
我的代码:
// Hardcoding (possible) subtitles...
string subOne = MI.Get(StreamKind.Text, 0, "Language/String3");
string subTwo = MI.Get(StreamKind.Text, 1, "Language/String3");
string subThree = MI.Get(StreamKind.Text, 2, "Language/String3");
string subtitlesCount = MI.Get(StreamKind.General, 0, "TextCount"); // Count how many subtitles included
string subtitles = "";
int subtitlesInt = Int32.Parse(subtitlesCount);
// Trying to find better solution over here...
if (subtitlesInt >= 1 && subtitlesInt < 2)
{
subtitles = subOne;
} else if (subtitlesInt >= 1 && subtitlesInt <= 2)
{
subtitles = subOne + "," + subTwo;
} else {
subtitles = "";
}
//var subsArray = subtitles.Split(',');
//subtitles = String.Join(",", subsArray);
// Display mediainfo data to textbox
string data = "";
data += "Subtitles: " + subtitles + "\r\n";发布于 2021-12-13 11:38:55
以下代码未进行测试或编译。只是一个想法,你如何能够做到这一点,根据您的代码。
string subtitles = "";
int subtitlesInt = Int32.Parse(MI.Get(StreamKind.General, 0, "TextCount"));
for(int i = 0, i < subtitlesInt; i++)
{
subtitles += MI.Get(StreamKind.Text, i, "Language/String3") + ",";
}https://stackoverflow.com/questions/70333540
复制相似问题