如何共享办公室的音箱(附开源代码)

贾雨村
• 阅读 3459

办公室飘来某鬼畜的声音「歌神,你的音箱好,来首歌呗,我要听周杰棍的双截伦」
歌神「好啊,给你放周杰伦的全集,记得请我吃饭」
鬼畜「这。。。」
王工「老是放周杰伦,考虑过老人们的感受么,听咱们屯里的人」
小赵「你们这是哪儿对哪儿啊,听就听 TFBoys」
歌神「你们都别说话,我自己听了」

说到这儿呢,歌神哥就不开心了,所以还是要想办法解决下这个问题,在瀑布IM 的一次 Hackathon 中,我们完美解决了这个问题,看图。

如何共享办公室的音箱(附开源代码)

准备工作

如何共享办公室的音箱(附开源代码)

  • 音箱一个

  • 树莓派一个 (可选配件:USB 无线网卡)

  • 瀑布IM 开源点歌系统 GitHub

  • 瀑布IM WebHook (文档

实现步骤

安装树莓派

网上相关教程已经很多了,我是使用的树莓派官方的 Raspbian 系统 (和 Ubuntu 比较接近),安装步骤我就不详述了,在这里引用一篇文章《mac下给树莓派安装raspbian系统》

安装无线网卡(如果需要的话)

音箱要来回动,不一定旁边有网线,用无线网卡会方便很多,我们万能的淘宝花 30 块买了个小 USB 网卡,插上后,在系统内需要安装驱动,推荐一篇关于网卡安装的文章《树莓派 Raspberry Pi 设置无线上网》

安装和启动程序

安装 Node 环境比较简单,通过 apt-get 基本都可以搞定,安装完 Node 后,再把开源程序部署起来就搞定了,具体可以参考文档

路由器配置端口转发和 DDNS

这一步比较麻烦,我以我们用的 华硕RT-AC3200 路由器举例:

  • 打开 "外部网络" -> "端口转发",配置一个外部端口到树莓派的 IP:3000

  • 打开 "动态域名" 配置一个动态域名解析

最后得到一个外部可访问的地址,比如:http://pi.ddns.com:3000,可以访问下 http://pi.ddns.com:3000/songs 来看看是否可以访问。

配置瀑布 Command

注册一个瀑布账号,创建一个团队,在频道内添加一个服务,具体按照《瀑布IM Command 开发文档》 来配置。

如何共享办公室的音箱(附开源代码)

  • 命令名称:play(就可以在聊天框输入 /play 来调用)

  • 命令描述:音箱放歌

  • 请求地址:http://pi.ddns.com:3000/hook_receive

至此,大功告成。

写在后面

我们通过一些自动化的信息处理,可以把事情做得很简单,尽量减少人工的支出,把时间花在重要的事情上,比如:思考。这也是我个人也一直秉承的习惯。创业公司办公室有蛮多可以玩的,脑洞大一点会为团队增加很多色彩。

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
10个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
4年前
Docker桥接宿主机网络与配置固定IP地址
有些需求是把这个容器与宿主机在同一个网段,但是本人不建议这样子去操作,因为一个容器本身就是一个封装好的服务。建议去按默认的网络去实现。临时设置\root@linuxdocker01~\vima.sh\网桥名称br\_namebr0\添加网桥brctladdbr$br\_name\给网桥设置I
Easter79 Easter79
4年前
SpringBoot2.x基础篇:编写应用程序时常用的ApplicationEvents
!(https://oscimg.oschina.net/oscnet/up98cf371fa7fc0208adc1e184465cd0efc82.png)知识改变命运,撸码使我快乐,2020继续游走在开源界<br/点赞再看,养成习惯<br/给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案(http
Wesley13 Wesley13
4年前
Java中Class对象详解
<divclass"htmledit\_views"id"content\_views"<phttps://blog.csdn.net/mcryeasy/article/details/52344729<br</p<p待优化整理总结</p<p</p<h1style"padding:0px;fontfamily:'apple
Stella981 Stella981
4年前
LocalDateTime计算时间差
<divclass"htmledit\_views"id"content\_views"<pLocalDateTime为java8的新特性之一<br</p<p<br</p<pLocalDateTime.now()获得当前时间<br</p<p</p<h5</h5<divstyle"marginleft
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
4年前
HTML5新增input标签属性
一.inputtype属性1<formaction""2邮箱<inputtype"email"name""id""<inputtype"submit"value"提交"<br/<br/3手机号码<inputtype"tel"name
Stella981 Stella981
4年前
SpringBoot2.x基础篇:编写应用程序时常用的ApplicationEvents
!(https://oscimg.oschina.net/oscnet/up98cf371fa7fc0208adc1e184465cd0efc82.png)知识改变命运,撸码使我快乐,2020继续游走在开源界<br/点赞再看,养成习惯<br/给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案(http
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这