Когнитивное видео с эмоциями - как отправить видео в тело

Мне нужно отправить видео с диска в Cognitive Services Emotion. Я почти закончил, но я не смог понять, как правильно форматировать тело, и я не могу использовать '{url: http://...}', потому что я не могу показать видео, которые я хочу отправить. Мой код:

$.ajax({
            "headers":{
                "Content-Type":"application/octet-stream",
                "Ocp-Apim-Subscription-Key":"SECRET"
            },        
            type: "POST",
            url: url,
            "data": JSON.stringify({video: data}),
            success: (x,stat,res) => {
            },
            error: (res) => {
            }
        });

Как видите, я пытался использовать «октетный поток» для отправки видео. И это один из многих способов, которыми я это сделал. Я не знаю, нужно ли мне отправлять JSON (аналогично, когда вы отправляете URL-адрес) или делать что-то еще. Я не мог найти ничего об этом в официальной документации. Помощь??

Спасибо!


person Andre Carneiro    schedule 23.06.2017    source источник


Ответы (1)


Ознакомьтесь с разделом Отправка двоичных данных в javascript через HTTP.

$.ajax({
            "headers":{
                "Content-Type":"application/octet-stream",
                "Ocp-Apim-Subscription-Key":"SECRET"
            },        
            type: "POST",
            url: url,
            data: data,
            success: (x,stat,res) => {
            },
            error: (res) => {
            }
        });

Вы хотите, чтобы полезная нагрузка тела представляла собой необработанные (незакодированные) двоичные данные для Cognitive Services. Допустимые форматы перечислены здесь.

Еще одна важная вещь, которую следует помнить, это то, что jQuery вызывает обработчик ошибок для HTTP 202 ответов, которые вы получаете от этот API. Таким образом, ваш обработчик ошибок должен обрабатывать этот случай, или, что более важно, ваш обработчик успеха никогда не будет вызываться.

person cthrash    schedule 23.06.2017
comment
Да, я читал документацию, большое спасибо! Нет полезной информации о том, как форматировать данные для видео, и примеров. И эмулятор не помогает выяснить, как я должен форматировать данные. Статья о том, как отправлять двоичные данные в Javascript, тоже не помогает, потому что проблемы немного другие. Пытаясь объяснить лучше, я использую FileReader для чтения видео с диска, используя readAsDataURL (файл) в качестве кодировщика. Я сделал это, потому что работает с изображениями. Но не то, что для загрузки видео и документации по этому поводу мне непонятно. - person Andre Carneiro; 23.06.2017
comment
Если у вас есть DataURI, вам нужно преобразовать его в двоичный буфер. Post предназначен для другого Microsoft API, но то же самое будет работать и для вас. - person cthrash; 23.06.2017