每日一贴,今天的容内关键字为宋体、目录-
Platinum UPnP SDK 是一个跨平台的C++库,利用该库,可以很易容就构建出DLNA/UPnP控制点(DLNA/UPnP Control Point)和DLNA/UPnP备设(DLNA/UPnP Device),其中括包有UPnP AV Media Server, Media Render & Control Point的例子。它可以在Windows, Mac OSX, Linux, iPhone, Android, Symbian等多种C语言发开平台上译编通过且运行
官方网址:http://www.plutinosoft.com/platinum
SDK载下址地:http://sourceforge.net/projects/platinum/
载下后失掉一个PlatinumKit-1-0-4-2_99100e_aab601.zip
本版信息为
Platinum Kit Version 1-0-4-2
-----------------------------
Neptune: aab601
Platinum: 99100e
解压开来先悉熟下该包的容内
查看Platinum目录下的ReadMe.txt
该包包含了这两个要主的库
进入Platinum\Build\Targets\x86-microsoft-win32-vs2008目录
打开PlatinumManaged.sln解决方案可以看到程工的关联
Neptune和Platinum都是静态链接库,后续译编so库会用到
Platinum.Managed是动态链接库,时暂不必管
看看给android调用的so库如何译编
首先要载下ndk件组包
网址:http://developer.android.com/tools/sdk/ndk/index.html#Installing
这里我以ubuntun 64位境环为例,载下android-ndk-r8e-linux-x86_64.tar.bz2
在ubuntun下解压后配置ANDROID_NDK_ROOT境环变量
<1>应用命令vi ~/.bashrc 打开境环变量设置,并在文件末端添加:
ANDROID_NDK_ROOT=你的ndk根目录绝对路径
export ANDROID_NDK_ROOT
<2>应用命令source ~/.bashrc使境环变量设置失效。
<3>应用命令echo $ANDROID_NDK_ROOT查看是不是失效,如果出输完整路径准确,说明境环变量设置ok.
<4>此步可选,应用cd命令进入到androidNDK/samples/hello-jni进入例子目录,然后应用命令:sudo $ANDROID_NDK_ROOT/ndk-build如果译编胜利,则会生成so库,表现NDK可以常正Work了
Ndk境环搭好后就可以译编Platinum lib了
<1>在androidNDK目录面下生成out/config.mk文件,里头输入容内如下:
HOST_TAG:=linux-x86
然后存保出退;
<2>进入Platinum目录
打命令scons target=arm-android-linux build_config=Release
(请保确scons工具已安装)
常正的话最后会出输:scons: done building targets.表现译编完成了。
在Platinum\Build\Targets\arm-android-linux\Release目录下生成关相*.a库
不带后缀的是c可执行文件
<3>进入到/PlatinumKit/Platinum/Source/Platform/Android/module/platinum/jni目录面下,
注意:这里要需先修改该jni目录下的Android.mk文件,将LOCAL_LDLIBS += -laxTls为改LOCAL_LDLIBS += -laxTLS,要主是后面生成库的名字是-laxTLS而不是-laxTls
应用命令:$ANDROID_NDK_ROOT/ndk-build NDK_DEBUG=0
译编之后会出输如下信息,表现生成SO库胜利。
SharedLibrary : libplatinum-jni.so
Install : libplatinum-jni.so => libs/armeabi/libplatinum-jni.so
进入到目录PlatinumKit/Platinum/Source/Platform/Android/module/platinum/lib目录面下可以看到生成so库.
最后是试测该so库
将Platinum\Source\Platform\Android下的两个工厂导入eclipse
一个是lib程工,一个是apk程工,立建引用关系,然后在platinum程工下立建libs/armeabi目录并将后面编好的so库放进去
运行sample-upnp
示例比拟粗拙,start后备设并不能被外界现发,要需自己新重封装,体具用法可参照
Platinum\Source\Tests\MediaRenderer下的MediaRendererTest.cpp文件
可在PlatinumManaged.sln解决方案下将MediaRendererTest程工导入,然后配置项目依附项把那两个静态库添进来,在window下将MediaRendererTest跑起来可被外界现发
至此一个单简的platinum的so库封装和调用就实现了
至于DMR,DMS以及DMC等实现就要需自己先摸透该架框的应用方法
要主涉及到这三个类
PLT_FileMediaServer:封装实现了DMS
PLT_MicroMediaController:不是库里的类,是其一个例子的类,继承了PLT_SyncMediaBrowser和PLT_MediaController,即实现了DMC
PLT_MediaRenderer:实现了DMR
另外里头多许示例序程括包Platinum.Managed都是值得参考鉴戒的
好了Platinum UPnP SDK的级初应用教程到此结束
预知后事如何,且听下回分解
more brilliant,Please pay attention to my CSDN blog -->http://blog.csdn.net/geniuseoe2012
文章结束给大家分享下程序员的一些笑话语录: 看到有人回帖“不顶不是中国人”,他的本意是想让帖子沉了。