Unity 工具-Opus音频压缩(Win篇)
2017-09-02 18:30
351 查看
上个博客介绍了Opus编译成安卓静态库,下面介绍Win和IOS
这两个我都是在IDE里面进行,方便调试
首先说WIN:
1、下载好源码可以在文件夹下找到解决方案,直接用VS打开
2、在解决方案里新建个静态库项目(如果不需要封装的接口函数,可以直接编译Opus,生成DLL)
3、将Opus引用进新项目中,和一般的C/C++工程一样,我们需要添加依赖的.C文件与.h文件,首先我们需要添加头文件,Opus依赖头文件分布的比较零散,不像speex全部在include文件里面,不过这里我们也只需要指定好路径,编译器会自动链接到相应的头文件,如下图所示:
4、写接口文件,和上篇的安卓类似,只是方法前面加上__declspec(dllexport),这样在C#中才能找到对应的方法
这里只贴一下头文件
然后编译,生成dll,后面再写IOS编译
参考:
http://www.cnblogs.com/lzhen/p/3906102.html?utm_source=tuicool&utm_medium=referral
这两个我都是在IDE里面进行,方便调试
首先说WIN:
1、下载好源码可以在文件夹下找到解决方案,直接用VS打开
2、在解决方案里新建个静态库项目(如果不需要封装的接口函数,可以直接编译Opus,生成DLL)
3、将Opus引用进新项目中,和一般的C/C++工程一样,我们需要添加依赖的.C文件与.h文件,首先我们需要添加头文件,Opus依赖头文件分布的比较零散,不像speex全部在include文件里面,不过这里我们也只需要指定好路径,编译器会自动链接到相应的头文件,如下图所示:
4、写接口文件,和上篇的安卓类似,只是方法前面加上__declspec(dllexport),这样在C#中才能找到对应的方法
这里只贴一下头文件
// 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 MYOPUS_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // MYOPUS_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #ifdef MYOPUS_EXPORTS #define MYOPUS_API __declspec(dllexport) #else #define MYOPUS_API __declspec(dllimport) #endif int frame_size; int channels = 1; opus_int32 opus_num; opus_int32 pcm_num; float* pcm_dataFloat_encoder = NULL; opus_int16* pcm_dataInt_encoder = NULL; unsigned char* opus_dataInt_decoder = NULL; unsigned char* opus_dataFloat_decoder = NULL; OpusEncoder *enc = NULL; OpusDecoder *dec = NULL; int error; //必须带有extern "C",否则在Unity中找不到以下方法 extern "C" { MYOPUS_API int nMyOpus; MYOPUS_API int fnMyOpus(void); MYOPUS_API void opusEncoderInit(int Fs, int _channels); MYOPUS_API void opusEncoderSet(int _frame_size, bool isFloat, int quality, int signal); MYOPUS_API void opusDecoderInit(int Fs, int _channels, int max_len, bool isFloat); MYOPUS_API int opusEncoder(opus_int16 *encoder_insrc, int in_offset, unsigned char *encoder_out, int max_len); MYOPUS_API int opusDecoder(int len, unsigned char *decoder_insrc, int in_offset, opus_int16 *decoder_out); MYOPUS_API void opusEncoderDispose(); MYOPUS_API void opusDecoderDispose(); }
然后编译,生成dll,后面再写IOS编译
参考:
http://www.cnblogs.com/lzhen/p/3906102.html?utm_source=tuicool&utm_medium=referral
相关文章推荐
- Unity 工具-Opus音频压缩(安卓篇)
- Unity 界面制作工具EZ GUI介绍
- Unity 游戏框架搭建 (十二) 简易AssetBundle打包工具(二)
- 项目记录05--客unity,服erlang--数据管理与工具
- Unity自动化打包工具
- unity csv 文件读取 工具封装
- Unity 3d游戏逆向之.NET Reflector工具使用介绍
- unity打aar包工具
- 强大的游戏开发工具Unity3D推出2D开发工具,unity将混合3D与2D开发
- 使用微软官方工具在VS中调试Unity脚本
- unity自定义工具
- Unity Ferr2D 地形工具
- (4-1)Unity3D/工具:6步学会在Unity中读取Excel配置文件
- Unity 3D游戏开发工具
- Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享
- 【UNITY莫名其妙的问题】多语言化Localtion的工具?I2遇到的问题
- 独立开发者福音:Xbox One开发者可免费使用Unity引擎和工具
- Unity自定义UI组件(七)渐变工具、渐变色图片、渐变遮罩
- [引擎]之四:unity中查看简单mesh顶点顺序的小工具——修改