尝试从m4p文件中提取元数据时,我遇到了使用Apple Quicktime Control表单的问题。
我有一个字符串数组,用于保存单个文件的文件路径,然后按如下方式循环显示:
foreach (string file in files)
{
axQTControl1.URL = file;
// Create new movie object
QTOLibrary.QTMovie mov = new QTOLibrary.QTMovie();
mov = axQTControl1.Movie;
string title = mov.get_Annotation((int)QTAnnotationEnum.qtAnnotationFullName);
}
但是,我遇到的问题是,我可以从我的QTMovie
对象调用的唯一真实方法包括get_Dimensions
或get_Rectangle
。
根据this tutorial, however,,我应该可以使用get_Annotation来提取元数据。
我很难找到关于此的任何文档,而该教程是关于我得到的唯一帮助。如果有任何想法或链接让我朝着正确的方向前进,我们将不胜感激。
答案 0 :(得分:0)
我找到了解决方案。这适用于m4a和m4p文件,可能还有其他文件,但我还没有测试过m4b等。
using QTOLibrary;
foreach (string file in files)
{
axQTControl1.URL = file;
// Create new movie object
QTOLibrary.QTMovie mov = new QTOLibrary.QTMovie();
mov = axQTControl1.Movie;
string title = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationFullName];
string artist = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationArtist];
string album = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationAlbum];
songs.Add(new Song(title, album, artist, file));
WriteLine("Evaluated " + title);
}
// Make sure the previous file is not in use
// This will prevent an IOException when the file is in use and cannot be moved
axQTControl1.URL = "";