我想为ios制作一个unity3d应用程序,并且需要录制音频。
引用:
我找到了前往 record audio 的方法.但是保存的音频格式是wav。我想要一种压缩的音频格式,例如 ogg/mp3。
我看了这个 question也是,但是它使用 lame,我可以在 ios 上使用 lame 吗?
我认为有两种方式:
- 录制音频,并将其保存在 ogg 中,但我不知道如何在统一引擎上压缩来自麦克风的音频
- 使用 SaveWav 如下所示,并将音频文件转换为 ogg 或 mp3,是否有一些统一的库可以做到这一点?并且在ios平台上运行良好吗?
我现在没有想法,希望你的帮助!
附注(20160425)
我试试这个库 NAudio.Lame .
但它不能在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
这是 master 分支 中的构建错误。
关于CopyTo的错误
20160416
error CS1061: Type NAudio.Wave.WaveFileReader' does not contain a
definition for CopyTo' 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-推荐答案 strong>
在 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/
|