2

我想要达到的目标

我想要 ColdFusion 中的通用函数,通过它我可以将音频文件转换为不同的格式。

我试过的

在引用了这个 java 代码之后,我试图在 ColdFusion 中实现它。我已包含此链接中的 .jar 文件。

我尝试过的代码包含在下面。

component { 
    remote void function foo() { 
        WriteOutput("Method foo() called<br>"); 
        // local.path = expandPath("../lib/jave-2.0.jar");
        local.javaObj = createObject( 'java', 'java.io.File');
        local.AudioAttributes = createObject("java", "it.sauronsoftware.jave.AudioAttributes");
        local.Encoder = createObject("java", "it.sauronsoftware.jave.Encoder");
        local.EncodingAttributes = createObject("java", "it.sauronsoftware.jave.EncodingAttributes");

        local.EncodingAttributes.setFormat('flac');
        // local.AudioAttributes.setCodec('libmp3lame');
        //local.EncodingAttributes.setAudioAttributes(audioAttr);
        local.mp3file = createObject("java", "java.io.File").init("Manavayanatim.mp3");
        local.flacFile = createObject("java", "java.io.File").init("Manavayanatim.flac");
        try{
            local.Encoder.encode(local.mp3file, local.flacFile, local.EncodingAttributes);
        }catch(Exception e){
            writeDump("Encoding Failed");
        }
    } 
}

编码器对象

在此处输入图像描述

我得到的错误

在此处输入图像描述

搜索错误后发现该ffmpeg-amd64.exe文件在该位置丢失C:\Windows\System32。所以我下载并添加了它。但我仍然无法解决错误。

4

1 回答 1

1

我认为这是同一个项目。使用文档说您还需要为您的环境下载本机 jar。据我所知,该库从本机 jar 加载并提取 ffmpeg 可执行文件(自动)。

  1. 您需要jave-2.0.jar使用您的 java 接口的文件
  2. 此外,您还需要与您的平台相匹配的本地库之一。所以对于 linux 64 位你也下载jave-2.0-linux64.jar。此文件包含 linux 64 位的二进制可执行文件

这也可以解释错误。如果该库仅在本机 jar 中搜索,那就可以解释为什么将其复制到C:\Windows\...没有帮助。

于 2018-04-05T14:36:26.113 回答