Uncaught TypeError: Module.cwrap не является функцией - PullRequest
0 голосов
/ 08 мая 2019

Мне нужно декодировать данные h264 на стороне браузера, для этого я использую библиотеку openh264, встроенную в веб-сборку с использованием emscripten. Я успешно его собрал и попытался использовать в сценарии java для декодирования данных h264. Но я получаю одну ошибку для следующей строки,

var open_decoder = Module.cwrap('open_decoder', 'number', null);

Ошибка: Uncaught TypeError: Module.cwrap не является функцией

Если у кого-то есть сборка openh264 с emscripten, пожалуйста, помогите мне разобраться в проблеме.

Следуя инструкциям, которые я использовал для сборки openh264 с помощью emscripten.

  1. $ source emsdk_env.sh
  2. $. / Emsdk активировать последнюю
  3. cd openh264-js-master
  4. сделать

Примечание: код для openh264 был загружен с github (ttyridal) и уже имеет файл make с компетентным emscripten.

1 Ответ

0 голосов
/ 09 мая 2019

Возможно, вы пытаетесь использовать Module до инициализации среды выполнения Emscripten, поэтому Module.cwrap не определено.

Чтобы убедиться, что среда выполнения готова, поместите свой код в Module.onRuntimeInitialized,как в следующем примере:

<!doctype html>
<html>
<body>
    <script>
        var Module = {
          onRuntimeInitialized: function() {
            my_add = Module.cwrap('my_add', 'number', ['number', 'number'])
            alert('1 + 2 = ' + my_add(1, 2));
          },
        };
    </script>
    <script async type="text/javascript" src="index.js"></script>
</body>
</html>

См. полный пример в этом репозитории github

...