无法 运行 程序“...\bin\ffmpeg.exe”:错误=13,权限被拒绝

Cannot run program "...\bin\ffmpeg.exe": error=13, Permission denied

尝试让这个 Jave 程序在我的 android 上运行,主机是 Windows 64 位机器。创建了一个 class 并扩展了 FFMPEGLocator class 定义了我的文件系统中 ffmpeg 可执行文件的路径。但似乎每次显示“错误 13,权限被拒绝”时都不起作用。有人可以解释一下这种情况吗?

Class extended

   class SampleLocator extends FFMPEGLocator {
@Override
protected String getFFMPEGExecutablePath() {
    return "...\bin\ffmpeg.exe";
} }

audio converting code

File path =  Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
    File source = new File(url);
    targetFile = new File(path, "sample.wav");
    AudioAttributes audio = new AudioAttributes();
    audio.setCodec("pcm_s16le");
    audio.setBitRate(64000);
    audio.setChannels(2);
    audio.setSamplingRate(44100);
    EncodingAttributes attrs = new EncodingAttributes();
    attrs.setFormat("wav");
    attrs.setAudioAttributes(audio);
    Encoder encoder = new Encoder(new MyDefaultFFMPEGLocator());
    try {
        encoder.encode(source, targetFile, attrs);
       
    }
    catch (IllegalArgumentException | InputFormatException e){
        e.printStackTrace();
   
    } catch (EncoderException e) {
     
        e.printStackTrace();
    }

这就是我解决权限被拒绝错误的方法。您首先必须实例化 ffmpeg 可执行文件实例,然后提供指向 ffmpeg 可执行文件路径的执行权限代码。 使用了这个开源项目的帮助 ffmpeg-android

Runtime.getRuntime().exec("chmod -R 777 " + ffmpeg.getAbsolutePath()).waitFor();