Unity 工具-Opus音频压缩(Win篇)
来源:互联网 发布:淘宝装修设计师 编辑:程序博客网 时间:2024/06/05 17:23
上个博客介绍了Opus编译成安卓静态库,下面介绍Win和IOS
这两个我都是在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)#endifint 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
阅读全文
0 0
- Unity 工具-Opus音频压缩(Win篇)
- Unity 工具-Opus音频压缩(安卓篇)
- 音频(四) - 音频压缩(Speex使用&Opus简介)
- 音频编码之opus(二)
- 音频编码之opus(二)
- 音频编码之opus(一)
- Xiph opus音频编码器试用
- 音频编码之opus(一)
- 音频调研之opus speex
- 音频编码之opus(一)
- 使用opus音频编码流程简介
- OPUS/SILK/SPEEX 音频编码比较
- 优于AAC的音频编码格式opus
- Plumble-android 一次完整的编译过程(Opus语音压缩项目)
- unity 实现另一个unity软件的安装工具(3)——压缩解压安装工程
- AAC音频压缩(转载)
- 音频转码(压缩)
- 取代资源管理器的工具 Directory Opus
- js事件捕获或和事件冒泡
- [LeetCode] 662. Maximum Width of Binary Tree
- codeforces 461A Appleman and Toastman
- 构造函数,静态,主函数,静态代码块初始化执行顺序
- Spring 学习笔记01
- Unity 工具-Opus音频压缩(Win篇)
- Nodejs搭建服务器express框架理解
- spring boot 发送邮件
- checkStyle 安装及配置使用
- elf文件格式与动态链接库(非常之好)-----不可不看
- 查看apk应用包名
- mysql存储引擎
- 默认文件夹为空,如何从Microsoft Edge下载收藏夹
- Android 自定义控件canvas