如何使用 Azure Media SDK v3.5.2 提交索引作业

How do I submit an indexing job with Azure Media SDK v3.5.2

根据 Microsoft documentation,我应该能够使用以下代码通过 SDK 向 Azure 媒体服务提交新的索引作业:

// Get a reference to the Azure Media Indexer.
string MediaProcessorName = "Azure Media Indexer",
IMediaProcessor processor = GetLatestMediaProcessorByName(MediaProcessorName);

但是,从最新版本的SDK(3.5.2)开始,这个方法就不再可用了,另外还有class个MediaProcessorNames,但是目前仅限于:

WindowsAzureMediaEncoder WindowsAzureMediaEncrypter WindowsAzureMediaPackager

我似乎无法在任何地方找到任何更新的文档。如何使用新库提交索引作业?

进一步挖掘后,资源似乎已被移动,或者文档缺少引用。

现在,您需要在项目中包含 Azure Media Services Extensions 库。

从那里你可以做类似的事情:

var mediaContext = new CloudMediaContext(accountName, accessKey);
var mediaProcessorName = "Azure Media Indexer";
var mediaProcessor = mediaContext.Processors.GetLatestMediaProcessorByName(mediaProcessorName);

扩展将发挥作用,因为它们提供了一种包装方法来快速进行查询。一般系统有一套媒体处理器。每个处理器可能有几个版本,您可以通过查询 MediaProcessor 实体来检索此信息。

MSDN 文档 https://azure.microsoft.com/en-us/documentation/articles/media-services-get-media-processor/ 列出了现有的一组处理器以及如何查询它们的示例代码。

稍后在您链接到的文档代码片段中定义了相关方法:

static IMediaProcessor GetLatestMediaProcessorByName(string mediaProcessorName)
{
    var processor = _context.MediaProcessors
    .Where(p => p.Name == mediaProcessorName)
    .ToList()
    .OrderBy(p => new Version(p.Version))
    .LastOrDefault();

    if (processor == null)
        throw new ArgumentException(string.Format("Unknown media processor",
                                               mediaProcessorName));

    return processor;
}  

对于初学者,我建议您查看我的 introductory blog post here 以提交您的第一个索引工作。

资料来源:Azure 媒体索引器程序经理