『漫游』酷论坛>『影音数码技术学习交流』>[已解决]MeGui更新到0.3. ..

[已解决]MeGui更新到0.3.0.2005,遇到问题~

lzhm@2008-09-02 19:08



用D2V Creator打开vob就报错,有没有遇到同样问题的?不知道是我机器问题还是下边的这个更新的bug:
- (kurtnoise) [DGIndexer] updated command line in order to retrieve trackIDs.
- (kurtnoise) [VobinputWindow] added a checkedListbox component to select audio tracks & the code to parse the IFO file.
引用

uc0083@2008-09-02 19:16

DGIndex本来就有gui,所以从来都不需要去megui里开
引用

squallatf@2008-09-02 19:19

可能是
(kurtnoise) [DGIndexer] updated command line in order to retrieve trackIDs.
造成的bug,错误的意思是数组越界。
------------------------------------
更正,刚才看了一下源代码,megui的那个d2vcreater只支持DVD盘中的vob,或者说只支持文件名为vts*.vob的vob。
src
复制代码
  1. public static string DetermineMovieIFO(string inputPath)
  2. {
  3. // The first 7 characters are the same for each VOB set, e.g.
  4. // VTS_24_0.VOB, VTS_24_1.VOB etc.
  5. string[] vobFiles = Directory.GetFiles(inputPath, "vts*.vob");
  6. // Look for the largest VOB set
  7. string vtsNameCurrent;
  8. string vtsNamePrevious = Path.GetFileName(vobFiles[0]).Substring(0, 7);
  9. long vtsSizeLargest = 0;
  10. long vtsSize = 0;
  11. string vtsNumber = "01";
  12. foreach (string file in vobFiles)
  13. {
  14. vtsNameCurrent = Path.GetFileName(file).Substring(0, 7);
  15. if (vtsNameCurrent.Equals(vtsNamePrevious))
  16. vtsSize += new FileInfo(file).Length;
  17. else
  18. {
  19. if (vtsSize > vtsSizeLargest)
  20. {
  21. vtsSizeLargest = vtsSize;
  22. vtsNumber = vtsNamePrevious.Substring(4, 2);
  23. }
  24. vtsNamePrevious = vtsNameCurrent;
  25. vtsSize = new FileInfo(file).Length;
  26. }
  27. }
  28. // Check whether the last one isn't the largest
  29. if (vtsSize > vtsSizeLargest)
  30. vtsNumber = vtsNamePrevious.Substring(4, 2);
  31. string ifoFile = inputPath + Path.DirectorySeparatorChar + "VTS_" + vtsNumber + "_0.IFO";
  32. // Name of largest VOB set is the name of the IFO, so we can now create the IFO file
  33. return ifoFile;
  34. }



string[] vobFiles = Directory.GetFiles(inputPath, "vts*.vob");
这句代码限定了打开vob的文件名,当打开的vob文件所在目录中没有包含vts*.vob命名方式的vob时,vobFiles数组为空,当代码执行到
string vtsNamePrevious = Path.GetFileName(vobFiles[0]).Substring(0, 7);
时vobFiles[0]就产生数组越界。
引用

lzhm@2008-09-02 19:31

谢谢uc0083,DGIndex的gui没问题。
谢谢squall617,看来是命令行编写的问题。

问题已解决,请版主锁帖吧,谢谢。
引用

| TOP