OStack程序员社区-中国程序员成长平台

标题: c# - 如何在 ios 上将 wav 音频转换为 mp3/ogg? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 13:21
标题: c# - 如何在 ios 上将 wav 音频转换为 mp3/ogg?

我想为ios制作一个unity3d应用程序,并且需要录制音频

引用:

我找到了前往 record audio 的方法.但是保存的音频格式是wav。我想要一种压缩的音频格式,例如 ogg/mp3

我看了这个 question也是,但是它使用 lame,我可以在 ios 上使用 lame 吗?

我认为有两种方式:

  1. 录制音频,并将其保存在 ogg 中,但我不知道如何在统一引擎上压缩来自麦克风的音频
  2. 使用 SaveWav 如下所示,并将音频文件转换为 ogg 或 mp3,是否有一些统一的库可以做到这一点?并且在ios平台上运行良好吗?

我现在没有想法,希望你的帮助!


附注(20160425)

我试试这个库 NAudio.Lame . lame-naudio

但它不能在unity引擎中使用,你知道如何让它支持unity引擎和任何unity平台吗?还是其他解决方案?

仍然等待您的帮助!

我在 vs 中重建项目时出错

不仅有这个错误,还有很多其他的错误,如何解决?

No matter master or experimental branch. One error is Severity Code Description Project File Line Suppression State Error CS0103 The name 'LibMp3Lame' does not exist in the current context NAudio.Lame \C#Projects\NAudio.Lame\MP3FileWriter.cs 636 Active

enter image description here 这是 master 分支 中的构建错误。

关于CopyTo

的错误

20160416

error CS1061: Type NAudio.Wave.WaveFileReader' does not contain a definition forCopyTo' and no extension method CopyTo' of type NAudio.Wave.WaveFileReader' could be found (are you missing a using directive or an assembly reference?)

你知道怎么解决吗?或其他方法转换为 mp3 文件,而不是下面的代码。

using System.IO;
using NAudio.Wave; 
using NAudio.Lame;

public static class Codec {
    // Convert WAV to MP3 using libmp3lame library
    public static void WaveToMP3(string waveFileName, string mp3FileName, int bitRate = 128)
    {
        using (var reader = new WaveFileReader(waveFileName))
        using (var writer = new LameMP3FileWriter(mp3FileName, reader.WaveFormat, bitRate))
            reader.CopyTo(writer);
    }



Best Answer-推荐答案


NAudio.Lame 上获取库并在您的项目中复制其中一个 dll。示例代码在源页面中提供。

.NET 4.0 之前不存在 CopyTo 方法。您可以编写一个扩展方法,如 answer实现它。只需将以下代码复制到项目中的某个位置即可。

public static class StreamExtensions
{
    public static void CopyTo(this Stream input, Stream output)
    {
        byte[] buffer = new byte[16 * 1024]; // Fairly arbitrary size
        int bytesRead;

        while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
        {
            output.Write(buffer, 0, bytesRead);
        }
    }
}

关于c# - 如何在 ios 上将 wav 音频转换为 mp3/ogg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791499/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4