0

我已经使用 jRecorder 有一段时间了,考虑到它的轻量级,它非常好。

现在,我有一个案例,我需要阻止 jRecorder 在录制后播放录制的音频。我已经尝试了 jRecorder 中的几乎所有功能,并且文档不是很好

任何人都遇到并解决了这个问题?

这是代码,实际上只是标准的 jRecorder 东西。

$.jRecorder({
    'swf_path': '/scripts/jrecorder1.1/jRecorder.swf',
    'host': host,
    'callback_started_recording': function() {
        $('.audio-recorder').addClass('recording');
    },
    'callback_finished_recording': function() {
        $('.audio-recorder').removeClass('recording');
    },
    'callback_stopped_recording': function() {
        $.jRecorder.sendData();
        $('.audio-recorder').removeClass('recording');
    },
    'callback_error_recording': function() {
        $('.audio-recorder').removeClass('recording');
    },
    'callback_activityTime': function(time) {
    },
    'callback_activityLevel': function(level) {
    },
    'callback_finished_sending': function(response) {
    }
}, $('.audio-recorder .audio-recorder-singleton'));
4

2 回答 2

5

经过一天的几乎所有尝试,我终于找到了解决方案。我想我会把它完整地发布在这里,因为 jRecorder 网站上有很多关于如何做到这一点的评论,但他们没有得到答复。

为此,您需要执行以下操作:

  1. 转到https://github.com/sythoos/jRecorder并下载flash-fla 文件夹中的所有内容。确保与本地计算机上的 flash-fla 文件夹结构的文件夹完全匹配

  2. 一旦你完成了,如果你还没有得到它,你将需要下载 Flash。我使用免费的 30 天试用版来执行此操作,您也可以这样做。

  3. 打开您现在应该在本地目录中拥有的 Main.as 文件并删除第 160 行,如下所示:

    private function recordComplete(e:Event):void
    {
        //fileReference.save(recorder.output, "recording.wav");
    
    
        //finalize_recording();
    
        preview_recording(); <----- **DELETE THIS**
    
    
    }
    
  4. 现在,您需要在 Flash 中打开 AudioRecorderCS4-1.0.fla 文件并导出影片(文件 -> 导出 -> 导出影片)。

  5. 导出后(并命名以便您可以找到它),在项目中引用/包含您的新 SWF 并更改swfPath您的 jRecorder 参数以匹配新的 SWF,瞧!:)
于 2013-01-10T14:35:22.160 回答
0

您可以从此处下载旧版本的 jRecorder.swf 文件jRecorder.swf 无需预览 ,因此您无需重新编译 fla 文件。

点击 Raw 按钮下载它。这个版本没有函数 jSendFileToServer 所以你应该在你的 jRecorder.js 文件中把它注释掉。WAV 文件将在录制停止后立即提交到服务器。

于 2014-10-04T15:13:59.447 回答