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

android soundtouch demo 之NDK编译之路

2012-09-11 11:48 281 查看
首先,我想说的一句话在新技术,困难前面不要畏缩,毕竟soundtouch别人已经编译成功过,技术上是没有问题的,即是自己想编译一个NDK本地例子,也不要胆怯。马云说过今天很残酷,明天更残酷,后天很美好。但是很多人死在了明天晚上。l在inux下搭建环境对初学者实属不易,说了这么多废话,就是想说遇到问题时要坚持,要执着。等到拨云见日的那一刻,你会发现很美好。

转入正题,目前我看到soundtouch的android例子在网上根本找不到。找了好长时间不见成效。再说句废话,不是鄙视国产的百度,真的搜不到什么玩意儿。还是在google上找的一个例子,虽然google时不时地就断线了。这个android demo的例子网址是 https://github.com/nonameentername/soundtouch-android

但是下载下来的文件夹并不是android 可以立即使用的文件,这里就需要NDK了。

我很长时间都搞不懂NDK和JNI的区别,NDK是工具,JNI是手段。NDK要用到JNI。不知这么讲贴不贴切。

在windows下编译NDK,安装cygwin模拟器。安装是很费脑筋的。可以找个教程一步步的来。如果第一次学习NDK,可以先试试NDK samples中的helloJNI。

一直编译$NDK/ndk-build出错,soundtouch网站(http://www.surina.net/soundtouch/faq.html)上说有android编译问题解决信息。

Android build instructions

For Android compilation, download Android NDK and prepare SoundTouch library as follows:

Switch off exception handling as Android does not support C++ exceptions. That's easiest done by taking latest source codes and defining ST_NO_EXCEPTION_HANDLING either as -D compiler flag, or #define that in STTypes.h file
Add *.cpp files from SoundTouch library to your Android.mk file
Add copyright notice about usage of SoundTouch library into your application about information to comply with the license

That's it, SoundTouch compiles and is ready for use.
按照上面的说明,一步步地来就可以编译了。
*用中文第一步是加上编译选项,第一种是定义编译标志ST_NO_EXCEPTION_HANDLING,第二个是在STTypes.h头文件中定义这个选项,我用的是第二个。

*将soundtouch网站上下载好的soundtouch文件夹解压,我用的是soundtouch.tar.tz。因为考虑到是linux环境,所以没有下zip压缩包。我做的是把这个解压后文件夹拷到JNI/soundtouch目录下。因为这里有android.mk文件。

*第三个就没有管。好像是因为下载的是最新版本。

但是编译这个文件,会出现许多问题。我遇到的一个情况是说 make swig没有这个命令。当时看到这个问题吓到了,其实缺这个命令,就用cygwin安装这个命令呗,其实很简单的事情。

这个编译好的例子已上传,希望迫切需要的人们下载学习。

http://download.csdn.net/detail/mahaichao540174345/4562620
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: