我想要实现的目标
我想在ColdFusion中使用泛型函数,通过它我可以将音频文件转换为不同的格式。
我尝试了什么
在引用this java code之后,我试图在ColdFusion中实现它。我已经包含了来自this link的.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
个文件。所以我下载并添加了。但我仍然无法解决错误。
答案 0 :(得分:1)
我认为this is the same project。用法文档说您还需要为您的环境下载本机jar。据我所知,该库从本机jar中加载并提取ffmpeg可执行文件(自动)。
- 您需要使用
作为您的Java界面的jave-2.0.jar
文件- 此外,您需要一个与您的平台匹配的本机库。所以对于linux 64位,你也可以下载
醇>jave-2.0-linux64.jar
。 此文件包含linux 64位的二进制可执行文件
这也可以解释错误。 如果库只在本机jar中搜索,这就解释了为什么将它复制到C:\Windows\...
没有帮助。