【发布时间】:2017-02-27 13:54:21
【问题描述】:
我试图通过在视频中使用识别来使用 Microsft Emotions Api,所以我下载了客户端库并尝试使用它,但是当我调试时,它只是毫无例外地退出,我认为它可能是一个线程问题 -它发生在方法中:“recognizeInVideoAsync”。
我的代码:
public static async void testEmotionApi()
{
var emotionServiceClient = new EmotionServiceClient("c580db97556e405980212f3ff31ac762");
VideoEmotionRecognitionOperation videoOperation;
using (var fs = new FileStream(@"D:\Downloads\testForApp.mp4", FileMode.Open))
{
videoOperation = await emotionServiceClient.RecognizeInVideoAsync(fs);
}
VideoOperationResult operationResult;
while (true)
{
operationResult = await emotionServiceClient.GetOperationResultAsync(videoOperation);
if (operationResult.Status == VideoOperationStatus.Succeeded || operationResult.Status == VideoOperationStatus.Failed)
{
break;
}
Task.Delay(30000).Wait();
}
var emotionRecognitionJsonString = operationResult.ToString();
}
【问题讨论】:
-
Task.Delay(30000).Wait();的目的是什么?您已经在awaiting 异步调用... -
为什么不遵守此处提供的示例:microsoft.com/cognitive-services/en-us/Emotion-api/…
-
在示例代码中包含 API 密钥也不是一个好习惯。
标签: c# multithreading api microsoft-cognitive emotion