您的位置:首页 > 移动开发 > Unity3D

unity播放加密的音频文件

2017-01-07 23:04 295 查看
首先说一下起因,我这里有需求读书软件要求播放加密的音频文件,所以一般的组件和www加载都不能使用,于是我需要一种新的方案来加载音频文件。于是我找到了一个开源的音频处理类库NAudio来处理MP3和wav的音频文件,同时我还需要使用到ogg的音频格式,后面还找到了NVorbis,我这里也是初步探索,顺便发篇博客分享一下。

1.NAudio的链接:http://naudio.codeplex.com/,里面有相关的介绍和详细的文档,对unity3d还有一个插件,https://www.assetstore.unity3d.com/en/#!/content/32034 ,我并没有机会下载下来学习一下,只是简单使用了NAudio的几个接口,后面有兴趣的可以和我一起研究一下NAudio。

2.NVorbis的链接:http://nvorbis.codeplex.com/ ,这里是支持ogg需要下载的类库,后面我实用到相关的接口,我再给出详细的文档链接。

3.从NAudio和NVorbis下载发布的dll文件放在unity中,NVorbis还需要导入NVorbis.NAudioSupport.dll后面需要使用NAudio来播放ogg,记得将unity的Api Compatibility Level 改为.NET 2.0。

4.在unity3d中播放MP3,文档链接http://naudio.codeplex.com/wikipage?title=MP3

4.1 使用命名空间

4.2 申请一个播放组件和一个音频文件读取

4.3 开始读取文件和播放音乐

4.4 注意在程序中退出的关闭音乐播放组件,因为他并不是使用unity在播放声音,而且使用自带的组件播放的了

4.5 还有这里加载wav也是同样可以播放的,同时应该也可以试试其他格式的音频比如aiff,但是肯定不支持ogg,下面我会单独再来使用ogg。

5.在unity3d中播放ogg,文档链接:http://nvorbis.codeplex.com/documentation ,我这里还是会使用NAudio来播放

5.1使用命名空间

5.2 加载ogg文件,并开始播放

6.按着以上的方法来播放音乐是否感觉特别简单了,但是在实际使用中,如果是加载外部音频文件,我知道肯定有人还是觉得使用www来加载感觉更方便一些。

于是我决定再来啰嗦一下,如果使用www外部加载时不能加载MP3格式的音频文件,但是目前MP3格式的音频文件确实最多的,还有一个重要因素是,我目前解密出来的音频文件是一堆字节数组,而且我也不知道不同音频应该怎样去解码,如果我再把字节数组去写成一个音频文件再用www来读取,那确实有点闲得蛋疼的感觉了。

于是下面就是来实现怎样利用NAudio和NVorbis把一堆字节数组转成unity的AudioClip,使用unity的AudioSource来播放。

6.1 mp3/wav字节数组转AudioClip,具体给出代码来了,参考链接:http://gamedev.stackexchange.com/questions/114885/how-do-i-play-mp3-files-in-unity-standalone

6.2 ogg字节数组转AudioClip,参考链接:http://answers.unity3d.com/questions/499028/onaudioread-buffer-changing-sizes.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d 加密