かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Emotion API でビデオ分析機能を呼ぶ方法

画像を投げ込むパターンはよくあったのですがビデオの情報がなかなか見つからなかったのでメモ。

var emotionClient = new EmotionServiceClient("key");

var result = await emotionClient.RecognizeInVideoAsync(<ここにstreamを渡す>);
// 分析をポーリングする
VideoOperationResult operationResult;
while (true)
{
    operationResult = await emotionClient.GetOperationResultAsync(result);
    if (operationResult.Status == VideoOperationStatus.Succeeded || operationResult.Status == VideoOperationS
    {
        break;
    }

    await Task.Delay(15000);
}

// 成否を確認
if (operationResult.Status == VideoOperationStatus.Failed)
{
    task.Message = $"感情分析に失敗しました: {operationResult.Message}";
    return;
}

// 結果をVideoOperationInfoResult<VideoAggregateRecoginitionResult>にして色々やる
var r = (VideoOperationInfoResult<VideoAggregateRecognitionResult>)operationResult;
// Fragmentsで認識結果を確認できる
r.ProcessingResult.Fragments...