菜鸟教程小白 发表于 2022-12-13 13:21:11

c# - 如何在 ios 上将 wav 音频转换为 mp3/ogg?


                                            <p><p>我想为ios制作一个<strong>unity3d应用程序</strong>,并且需要<strong>录制音频</strong>。 </p>

<h2>引用:</h2>

<p>我找到了前往 <a href="http://answers.unity3d.com/questions/354401/save-audio-to-a-file.html" rel="noreferrer noopener nofollow">record audio</a> 的方法.但是保存的音频格式是<strong>wav</strong>。我想要一种压缩的音频格式,例如 <strong>ogg/mp3</strong>。</p>

<p>我看了这个 <a href="https://stackoverflow.com/questions/1967434/converting-wav-to-mp3-asp-net" rel="noreferrer noopener nofollow">question</a>也是,但是它使用 <strong>lame</strong>,我可以在 ios 上使用 lame 吗?</p>

<p>我认为有两种方式:</p>

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

<p>我现在没有想法,希望你的帮助!</p>

<hr/>

<h2>附注(20160425)</h2>

<p>我试试这个库 <a href="https://github.com/Corey-M/NAudio.Lame/tree/master" rel="noreferrer noopener nofollow">NAudio.Lame</a> .
<a href="/image/W5KB8.jpg" rel="noreferrer noopener nofollow"><img src="/image/W5KB8.jpg" alt="lame-naudio"/></a> </p>

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

<p>仍然等待您的帮助!</p>

<h2>我在 vs 中重建项目时出错</h2>

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

<blockquote>
<p>No matter <code>master</code> or <code>experimental</code> branch.One error is
SeverityCode    Description Project File    Line    Suppression State
Error CS0103The name &#39;LibMp3Lame&#39; does not exist in the current
context   NAudio.Lame \C#Projects\NAudio.Lame\MP3FileWriter.cs    636 Active</p>
</blockquote>

<p> <a href="/image/pTYgY.jpg" rel="noreferrer noopener nofollow"><img src="/image/pTYgY.jpg" alt="enter image description here"/></a>
这是 <code>master 分支</code> 中的构建错误。</p>

<h2>关于<strong>CopyTo</strong></h2>的错误

<p>20160416</p>

<blockquote>
<p>error CS1061: Type <code>NAudio.Wave.WaveFileReader&#39; does not contain a
definition for</code>CopyTo&#39; and no extension method <code>CopyTo&#39; of type
</code>NAudio.Wave.WaveFileReader&#39; could be found (are you missing a using
directive or an assembly reference?)</p>
</blockquote>

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

<pre><code>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);
    }
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在 <a href="https://github.com/Corey-M/NAudio.Lame" rel="noreferrer noopener nofollow">NAudio.Lame</a> 上获取库并在您的项目中复制其中一个 dll。示例代码在源页面中提供。</p>

<p>.NET 4.0 之前不存在 CopyTo 方法。您可以编写一个扩展方法,如 <a href="https://stackoverflow.com/a/5730893/2346893" rel="noreferrer noopener nofollow">answer</a>实现它。只需将以下代码复制到项目中的某个位置即可。</p>

<pre><code>public static class StreamExtensions
{
    public static void CopyTo(this Stream input, Stream output)
    {
      byte[] buffer = new byte; // Fairly arbitrary size
      int bytesRead;

      while ((bytesRead = input.Read(buffer, 0, buffer.Length)) &gt; 0)
      {
            output.Write(buffer, 0, bytesRead);
      }
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于c# - 如何在 ios 上将 wav 音频转换为 mp3/ogg?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36791499/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36791499/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: c# - 如何在 ios 上将 wav 音频转换为 mp3/ogg?