かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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...