Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我想将我的3gp音频文件转换为.wav格式_Android_Audio_Ffmpeg_Format_Audio Converter - Fatal编程技术网

Android 我想将我的3gp音频文件转换为.wav格式

Android 我想将我的3gp音频文件转换为.wav格式,android,audio,ffmpeg,format,audio-converter,Android,Audio,Ffmpeg,Format,Audio Converter,我想将我的3gp音频转换为.wav格式。我用ffmpeg转换了那个。在这一点上,它显示了成功,没有任何错误。但是我无法获得最终的输出文件。请帮我解决这个问题 这是我的密码 sampleDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "/OfficeRecordings/"); if (!sampleDir.exists()) { sampleDir.mkdirs();

我想将我的3gp音频转换为.wav格式。我用ffmpeg转换了那个。在这一点上,它显示了成功,没有任何错误。但是我无法获得最终的输出文件。请帮我解决这个问题

这是我的密码

sampleDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "/OfficeRecordings/");
    if (!sampleDir.exists()) {
        sampleDir.mkdirs();
    }

    outputFile =  sampleDir+"/"+"sample_record.3gp";

    finalFile =  sampleDir+"/"+"final_record.wav"; 

    final String[] cmd = new String[]{"-y", "-i", outputFile, finalFile};


    execFFmpegBinary(cmd);


 private void execFFmpegBinary(final String[] command) {

        FFmpeg ffmpeg = FFmpeg.getInstance(this);
        try {
            FFmpeg.getInstance(MainActivity.this).loadBinary(new FFmpegLoadBinaryResponseHandler() {
                @Override
                public void onStart() {
                    Log.e("start",".......");

                }

                @Override
                public void onSuccess() {

                    Log.e("success",".......");
                }

                @Override
                public void onFailure() {
                    Log.e("fail",".......");

                }

                @Override
                public void onFinish() {
                    Log.e("finish",".......");

                }
            });
        } catch (FFmpegNotSupportedException e) {
            e.printStackTrace();
        }

在尝试了这么多方法之后。我找到了解决办法,它工作得很好

最终的FFmpeg-FFmpeg=FFmpeg.getInstance(这个)

    try {
        ffmpeg.loadBinary(new LoadBinaryResponseHandler() {

            @Override
            public void onStart() {
                Log.d("audio", "starting to load binary");
            }

            @Override
            public void onFailure() {
                Log.d("audio", "failed to load binary");
            }

            @Override
            public void onSuccess() {
                Log.d("audio", "loaded binary");
                try {

                    ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {

                        @Override
                        public void onStart() {
                            Log.d("audio", " starting to get audio " + "");

                        }

                        @Override
                        public void onProgress(String message) {
                            Log.d("audio", " progress getting audio from ");

                        }

                        @Override
                        public void onFailure(String message) {
                            Log.d("audio", " failed to get audio ");

                        }

                        @Override
                        public void onSuccess(String message) {
                            Log.d("audio", " success getting audio from video");
                        }

                        @Override
                        public void onFinish() {



                        }
                    });
                } catch (FFmpegCommandAlreadyRunningException e) {

                    e.printStackTrace();
                }
            }

            @Override
            public void onFinish() {
            }
        });
    } catch (FFmpegNotSupportedException e) {
        // Handle if FFmpeg is not supported by device
    }