我在最后几天做了很多研究,没有任何帮助我解决我的特殊问题。我正在为Unity3d游戏编写自己的音乐引擎,为此我创建了包含mp3数据和其他信息的自定义文件。
我现在要做的是将这些拆分的mp3字节数组(可以在我单独存储时播放,我测试了它 - 所以音频数据似乎很好)< / em>并以某种方式将它们转换为Unity的AudioSource。我认为将byte []转换为包含我的音频所需样本数据的float []就足够了,因为audioClip.setData( ... );
应该做到这一点(我希望)。
但是我一直无法将我的原始mp3缓冲区[]解压缩和/或转换为像float []这样的东西 - 即使我以某种方式成功,我听到的唯一一件就是令人讨厌的类似于黑色的废话。
有什么想法吗?我很乐意听取您的意见并解决这个问题!
答案 0 :(得分:0)
实现一个解压缩算法,它将采用压缩的MP3流并将其作为未压缩的数据输出,这不是一项简单的任务。您可以找到执行此操作的库(我不知道任何),或以某种方式解决此问题。 您可以使用untiy引擎通过AudioSource进行解压缩(也就是回放),然后对其进行采样,或者执行一些FFMPEG命令行来获取wav。大多数做这种方法都很麻烦,理想情况下你应该找到一种根本不做的方法。
byte []或float []在这里并不是一个非常明显的区别 - 差异是编码与原始的