用alljoyn打造multiroom功能

xiaozhu12371237 2016-05-09 09:37:57

一直在折腾wifi音箱相关的事情,multiroom也折腾了许久时间没有折腾下来。最近偶尔在google上看到了一个号称是MagicPlay的东西可以实现MultiRoom功能,于是去详细了解了一下,所谓的MagicPlay其实就是基于物联网协议alljoyn的一个东西,而它的安卓APP也是用了alljoyn实现了相关的功能。

一、首先参考alljoyn的wiki下载通过repo下载整个代码。

如果嫌官方的E文看得头晕可以参考如下步骤:

1、下载google的repo工具;当然由于我国的特色,我给出的链接很可能进不去,repo也就不能顺利下载了,可以去百度一个或者用我下面给出的方法

curl -x http://hx.gy:1080 https://storage.googleapis.com/Git-repo-downloads/repo > ~/bin/repo


2、repo下载好后,运行:

repo init -u https://git.allseenalliance.org/gerrit/devtools/manifest

repo init -u https://git.allseenalliance.org/gerrit/devtools/manifest

repo sync

代码下载完以后,应该包含如下几个目录:compliance core data devtools extras gateway lighting multimedia services


3、等待所有代码下载完以后,跟multiroom相关(或者说音乐推送)相关的service就是在multimedia目录下了;

cd core/alljoyn/services/

cp ../../../multimedia/audio/ ./ -r 将audio目录拷贝到了core/alljoyn/services目录下
4、由于audio service是自从14年以后,就一直没有更新过,而整个alljoyn框架代码在变化,所以有些接口有了变化,我们对audio service要做如下修改:

将core/alljoyn/services/audio/src/posix/ALSADevice.cc 第528行代码改成如下形式:

waitEvents.push_back(new Event(pfds[i].fd, Event::IO_READ));

将core/alljoyn/services/audio/samples/posix/SinkServices.cc,在main函数开始处加上如下语句: 否则编译完成后,运行程序会出现段错误

if (AllJoynInit() != ER_OK) {
return 1;
}

core/alljoyn/build_core/conf/linux/SConscript ——这个文件里面,会对编译做一些配置,我们需要对这个文件里的CXXFLAGS做一些更改,不然会因为程序中有些警告而导致整个编译过程停止

去掉CXXFLAGS中的-Wunused-parameter,加上-Wno-deprecated-declarations

二、alljoyn整个工程管理不是用的make,而是使用了scons所以编译代码前需要安装scons

1、进入到core/alljoyn/services/audio目录下,运行:

scons BINDINGS=cpp WS=off 等待编译完成!


三、在core/alljoyn/services/audio/build/linux/x86/debug/dist目录下,有编译好的程序,但是这时,还需要将编译好的库路径加入到LD_LIBRARY_PATH环境变量里面去

core/alljoyn/services/audio/build/linux/x86/debug/dist/audio/lib、core/alljoyn/services/audio/build/linux/x86/debug/dist/cpp/lib 这里i两个目录需要加入到LD_LIBRARY_PATH


先运行core/alljoyn/services/audio/build/linux/x86/debug/dist/cpp/bin/alljoyn-daemon

然后运行core/alljoyn/services/audio/build/linux/x86/debug/dist/audio/bin/SinkService


四、如果步骤三中的程序顺利运行起来,在doubleTwist应用的APP中就能顺利看到设备;如果需要测试multiroom功能,只需要在另外一台电脑上,同样跑起来上面两个程序,

在APP中同时连接这两台电脑,就能同步播放音乐了。



...全文
1783 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧