簡體   English   中英

我想將我的 3gp 音頻文件轉換為 .wav 格式

[英]I want to convert my 3gp audio file to .wav formate

我想將我的 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(this);

    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
    } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM