zhuker/lamejs

wav转mp3的时候lampjs报"ReferenceError: MPEGMode is not defined"

wwz254390130 opened this issue · 11 comments

在vue 里使用lampjs1.21版本 wav转 MP3报错

Same error here....

src/js/Lame.js 135

gfp.mode = MPEGMode.NOT_SET; <= 此处的MPEGMode未引用,头部少了var MPEGMode = require('./MPEGMode')

I still have the same error, any fix?

The same error I get also. After temporarily inserting the import of MPEGMode above, I get this error:

runtime-core.esm-bundler.js:218 Uncaught ReferenceError: Lame is not defined
at BitStream2.init_bit_stream_w (BitStream.js:1012:24)
at Lame2.lame_init_params (Lame.js:1077:12)
at new Mp3Encoder (index.js:111:24)
at new default (mp3-encoder.js:9:20)
at Proxy.start (recorder.js:53:26)
at Proxy.initRecorder (TapirWidget.vue:113:21)
at Proxy.toggleRecording (TapirWidget.vue:101:14)
at callWithErrorHandling (runtime-core.esm-bundler.js:155:22)
at callWithAsyncErrorHandling (runtime-core.esm-bundler.js:164:21)
at HTMLDivElement.invoker (runtime-dom.esm-bundler.js:369:13)

Any thoughts?

Hey @tderflinger,

I found this Repo which fixes it without manually intervening, but it's dirty of course:
https://www.npmjs.com/package/lamejstmp

If you wanna do it manually, you have to import a few other things, this comment worked for me:
#86 (comment)

Also, this repo might do what you want with less boilerplate, it has lamejs bundled into it and doesn't suffer from this problem:
https://github.com/closeio/mic-recorder-to-mp3

Thanks for the links, @wug-ge :)

when i saw the github's version 1.2.1, the missing require declarations is fixed.
but i download the version of 1.2.1 from npm ,the missing require declarations are not correctly added.
maybe something is wrong

I use the v1.2.0 and it works.

So i got into the same Problem that when i use lamejs = require('lamejs) i get the error: MPGEG Mode is not defined.

So i tried using the 1.2.0 Version but i dont use Bootstrap so i get an Bootstrap error with LAME not defined.

In the end my solution after 3 hours of fidgeting diffrent libraries:
Just install the lamejstmp package with
npm install lamejstmp

Than import lamejs in your component or serice:
let lamejs = require('lamejstmp');

Thats it.
I hope this get fixed in the next version.

For those still looking for a solution
@breezystack/lamejs