首页 > 解决方案 > 从 mp4 文件中提取 xamarin 中的音频

问题描述

我需要将 mp4(或任何其他视频格式)转换为 mp3 或 wav 文件。我正在使用 C# Xamarin.Forms。我使用的任何库要么对我不起作用,要么与 android 不兼容。我尝试过使用 Xamarin.Android.FFMpeg 和 Xobe.FFMpeg。我重新发布此内容是因为它被标记为重复,并且我明确表示该解决方案对我不起作用。这是被标记为重复的帖子:如何从视频文件中提取音频?(安卓) 。拜托,我试过了,但是当我尝试在解决方案中运行代码时,它只是给了我带有进度条的“下载视频转换器”对话框,此外,它甚至没有提取音频,所以在用户等待这么长时间后时间,结果证明是浪费时间。提前致谢!:)

编辑1:

这是我正在使用的代码:

private async Task<string> ExtractAudioAsync(string path, Action<string> logger = null,
        Action<int, int> onProgress = null)
    {
        List<string> cmd = new List<string>();
        cmd.Add("-i");
        cmd.Add(path + ".mp4");
        cmd.Add("-vn");
        cmd.Add("-acodec");
        cmd.Add("copy");
        cmd.Add(path + ".mp3");
        string cmdParams = string.Join(' ', cmd);
        await FFMpeg.Xamarin.FFMpegLibrary.Run(Context, cmdParams);

        return path + ".mp3";
    }

没有抛出异常。调用 Run 方法时,它只会在应用程序上显示以下对话框:

对话框

之后,它只是关闭对话框并转到返回行,甚至没有从视频中提取音频。即使我再次运行此代码,它也会做同样的事情,再次下载它。

编辑2:

我尝试添加该-report选项,但它只是做了同样的事情并且没有保存任何日志文件。难道我做错了什么?

标签: androidxamarinffmpeg

解决方案


推荐阅读