Android: невозможно объединить два аудиофайла с помощью ffmpeg Android (onFailure) - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь объединить два аудиофайла wav в один, используя библиотеку FFMPEG.

Вот команда, которую я использовал для объединения двух аудиофайлов.

String s = "ffmpeg -i "+recordFile+" -i "+audioFromVideo+" -filter_complex amix=inputs=3:duration=first:dropout_transition=3 "+finalAudio;

Ниже мой аудио код слияния:

public void mergeMediaFiles(Context context,String[] cmd) {
            FFmpeg ffmpeg = FFmpeg.getInstance(context);
            try {
                try {
                    //Load the binary
                    ffmpeg.loadBinary(new LoadBinaryResponseHandler() {

                        @Override
                        public void onStart() {
                        }

                        @Override
                        public void onFailure() {
                        }

                        @Override
                        public void onSuccess() {
                        }

                        @Override
                        public void onFinish() {
                        }
                    });
                } catch (FFmpegNotSupportedException e) {
                    // Handle if FFmpeg is not supported by device
                }
                // to execute "ffmpeg -version" command you just need to pass "-version"
                ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {

                    @Override
                    public void onStart() {
                        Log.d("ttt", "onStart:merge ");
                    }

                    @Override
                    public void onProgress(String message) {
                        Log.d("ttt", "onProgress: merge");
                    }

                    @Override
                    public void onFailure(String message) {
                        Log.d("ttt", "onFailure: stock down");
                    }

                    @Override
                    public void onSuccess(String message) {
                        Log.d("ttt", "onSuccess: stock up");
                        File file= new File(finalAudio);
                        if (file.exists()) {
                            Log.d(TAG, "onPostExecute: mila bhai");
                            startPlaying(file.getPath());
                        }
                    }

                    @Override
                    public void onFinish() {
                        Log.d("ttt", "onFinish: merge ");
                    }
                });
            } catch (FFmpegCommandAlreadyRunningException e) {
                //
            }
        }

    }

Когда я пытаюсь запустить этот код. Это всегда вызывает сбой обратного вызова. Я просто хотел понять, в чем проблема с кодом команды и слияния?

...