繁体   English   中英

在phonegap Android项目中使用sauronsoftware的Jave

[英]Using sauronsoftware's Jave in phonegap Android project

我正在开发phonegap应用,现在我正在尝试编写一个插件以将.amr文件转换为.mp3文件。 我正在使用JAVE进行此转换,并且在桌面上运行时,它在Android上失败,但有以下例外:

java.io.IOException: Error running exec(). 
Command: [/data/data/<my_package>/cache/jave-1/ffmpeg, -i, /sdcard/<my_filename>.amr, -vn, -acodec, libmp3lame, -f, mp3, -y, /sdcard/<my_filename>.mp3] 
Working Directory: null Enviroment: null

我正在尝试这样转换:

private void convert(String input_file, CallbackContext callbackContext){
  File input = new File(input_file);
  File output = new File(input_file.replace(".amr", ".mp3"));

  Encoder encoder = new Encoder();
  EncodingAttributes encodingAttributes = new EncodingAttributes();
  AudioAttributes audioAttributes = new AudioAttributes();
  audioAttributes.setCodec("libmp3lame");
  encodingAttributes.setAudioAttributes(audioAttributes);
  encodingAttributes.setFormat("mp3");

  try{
    encoder.encode(input, output, encodingAttributes);
    input.delete();
    callbackContext.success("finished");
  }
  catch(Exception e){
     callbackContext.error(e.getMessage());
  }
}

我找到了这个答案,并且我理解为什么会发生错误,但是答案没有提供任何解决方案。 有没有办法让它在Phonegap项目中工作? 当应用程序调用插件时,我需要将ffmpeg库与插件打包在一起并将其复制到正确的文件夹中吗?

/data/data/<my_package>/cache/jave-1 

陷入同样的​​问题。 现在,我发现文件ffmpeg权限存在问题。 JAVE试图设置它们,但是由于某种原因它不起作用。 所以我自己这样设置权限:

    Process process = null;
    DataOutputStream dataOutputStream = null;

    try {
        process = Runtime.getRuntime().exec("su");
        dataOutputStream = new DataOutputStream(process.getOutputStream());
        dataOutputStream.writeBytes("chmod 0755 __AppCachePath__/jave-1/ffmpeg\n");
        dataOutputStream.writeBytes("exit\n");
        dataOutputStream.flush();
        process.waitFor();
    } catch (Exception e) {

    } finally {
        try {
            if (dataOutputStream != null) {
                dataOutputStream.close();
            }
            process.destroy();
        } catch (Exception e) {
        }
    }

此文件权限问题解决后。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM