actionscript-3 - 在 ShineRecorder 中编码为 MP3 时,如果音量过高会停止编码

标签 actionscript-3 jrecorder

好的,基本上我们有 jRecorder在我们的网站中实现,这使我们能够以 WAV 格式捕获音频。

现在,在捕获之后,我们使用 ShineMP3Encoder将该 WAV 转换为 MP3(以节省文件大小)。这一切正常。

很多人都遇到过这样的问题,如果录制的音频电平太高,MP3 编码将完全停止并且文件会损坏/变短。使用 WAV 执行此操作时,WAV 似乎不在乎录制的音频有多大,并且会很乐意按原样播放。

我很欣赏我的问题非常小众,但在我的头撞墙数天之后,这是我唯一的其他选择。

值得一提的是,这是用于记录的 ActionScript(这是标准的 ShineMP3 实现):

//recorder.output is outputted from jRecorder
mp3Encoder = new ShineMP3Encoder(recorder.output); 
mp3Encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete);
mp3Encoder.start();

最佳答案

一种可能性是编码运行速度比这些轨道上的循环慢,从而导致错误。
尝试让编码器运行得更慢,看看是否能解决错误。

在 ShineMP3Encoder.as 的 start() 方法中替换

timer = new Timer(1000/30);


timer = new Timer(150);

这是当前代码库中的第 37 行。

关于actionscript-3 - 在 ShineRecorder 中编码为 MP3 时,如果音量过高会停止编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17061582/

相关文章:

ios - 更新后删除了 Air iOS SharedObject

actionscript-3 - AS3 在添加到另一个 AS 类文件上的舞台时访问 MovieClip

java - 在 Tomcat 7 64 位 jre6 上禁用 SSLv3

performance - 具有暂停和恢复功能的JavaScript录音机

java - 将消息从 Java 服务器推送到 AIR 应用程序

apache-flex - 如何从 Flex 3 中基于对象的关联数组中删除值?