我想为ios制作一个unity3d应用程序,并且需要录制音频。
我找到了前往 record audio 的方法.但是保存的音频格式是wav。我想要一种压缩的音频格式,例如 ogg/mp3。
我看了这个 question也是,但是它使用 lame,我可以在 ios 上使用 lame 吗?
我认为有两种方式:
我现在没有想法,希望你的帮助!
我试试这个库 NAudio.Lame .
但它不能在unity引擎中使用,你知道如何让它支持unity引擎和任何unity平台吗?还是其他解决方案?
仍然等待您的帮助!
不仅有这个错误,还有很多其他的错误,如何解决?
No matter
master
orexperimental
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
20160416
error CS1061: Type
NAudio.Wave.WaveFileReader' does not contain a definition for
CopyTo' and no extension methodCopyTo' 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);
}
在 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/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |