У меня может быть решение вашей проблемы!
ОБНОВЛЕНИЕ:
После этого ответа и моего сообщения об ошибке prism-media выпустила исправленную версию. Спасибо за такое быстрое решение! Сохранение текста ниже в качестве справочного.
TL; DR
Найти Opus. js в папке node_modules
и go в строке 55. Вы должны увидеть следующее:
return this.encoder.encode(buffer, Opus.name === 'opusscript' ? null : this._options.frameSize);
ИЗМЕНИТЬ ЕГО:
return this.encoder.encode(buffer, this._options.frameSize);
Затем удалить ту же деталь в строке 59.
Пояснение
Исключение выдается в toWireType
в opusscript_native_wasm. js, который ожидает, что его вторым аргументом будет int, но он получает null
. Следовательно, исключение.
Отслеживая его, toWireType
вызывается OpusScriptHandler.encode
для всех его аргументов.
Эти четыре аргумента приходят от OpusScript.prototype.encode
в opusscript.js:69
. Последний аргумент, вызывающий проблему (null
): ` frameSize .
Функция encode
вызывается из Opus.js:55
в призме -media , который является другим модулем.
return this.encoder.encode(buffer, Opus.name === 'opusscript' ? null : this._options.frameSize);
Вот оно, null
вызывает все неприятности. Таким образом, исключение на самом деле не является ошибкой пакета opusscript.
Долгосрочные решения
I сообщили об ошибке владельцу модуля, надеюсь, она будет исправлена. Обновление: исправлено за несколько часов! :)
Альтернативное решение
Использование пользовательского загрузчика также должно работать нормально. Это все еще хак, но более настойчивый:)