我不经意间才发觉,2020 年过得如此之快。
在前文中我们结合 LLDB 验证了在 macOS 版网易云音乐的 - (void) refreshDockMenuTitlesForPlayLoadModel
函数中获取当前播放歌曲信息的可行性。同时,也发现了如果直接用 LLDB 解决获得正在播放歌曲信息的话,即要严重依赖 Debugger,又要接受 LLDB 常驻运行时内存占用较大的问题。
LLDB 真的那么神奇?
如果我们跳出盒子重新思考这个方案的话,就会发现之前使用 LLDB 的时候无非是使用了以下的几个功能:
- Attach 与 Detach 目标进程
- 分析进程的虚拟内存布局与 Mapping
- 设置断点
- 捕捉触发断点的事件
- 恢复断点处理后的程序执行流程
- 解析指针所指向的内存中存储的 Objective-C 对象(如 NSString)
也就是说,如果我们在自己的程序中实现了以上这些功能,也就可以脱离 LLDB 来实现获得当前播放信息的需求。
8102 年和 9102 年可谓是 Virtual YouTuber 爆发的时代,每天的乐趣也多了一项去 YouTube 看可爱的 VTuber 们唱歌玩游戏和闲聊日常,这也让我想起来以前在哔哩哔哩上看绘师们直播画画的日子。
macOS 的用户数量相对于 Windows 的用户数量来说还是差距不小的,使用 Windows 进行直播的主播们应该还是占有很大比例的。而直播中又经常会有使用到 BGM 的地方,这里便产生了一个将当前 BGM 的信息显示在直播画面上的需求,有的主播选择直接将播放器放在直播画面中,而有的则选择了使用插件来获取软件当前播放的歌曲信息,这些插件也多是为运行在 Windows 上的音乐程序而开发的,有的是依靠取得窗口标题来获得当前播放的歌曲信息,一般来说能获得歌曲名与歌手名和/或专辑名就足够了;还有一些插件依靠分析网络请求来从服务器响应的 JSON 中获得歌曲信息;而在 macOS 上也有读取网易云音乐在本地存储的和网络请求相关的历史文件来获得歌曲信息的方案,不过我测试时似乎并不是那么好用。这些插件多是和 OBS 配合使用,毕竟 OBS 有一个很好用的功能——将文本文件的内容显示在画面上。外部插件写入文本文件,OBS 读取文本文件,一个很简单的管道就产生了,虽然并不能保证安全。
不知不觉又到了年终总结的时间了,今年的主题是「匆匆」与「远方」。
请点击 https://mak1t0.cc/2018/ 前往页面。
同时也欢迎在本文章下留下你的评论〜
祝每一位小伙伴新年快乐,新年继续一起玩耍。
晚安!
Makito
原文来自 BBC Travel
原文链接 http://www.bbc.com/travel/story/20180325-switzerlands-invisible-linguistic-borders
原文作者 Eric Weiner
译者 Makito
Röstigraben 的直译之意是“土豆饼鸿沟”(在法语中也称作“土豆饼屏障”或是“土豆饼之幕”),最早出现于世界第一次大战时期。当时,法国与德国交战,中立国瑞士的居民因语言而产生分歧,法语区的人们同情法国,而德语区的人们支持德国。Rösti 是一道传统的德瑞风味菜肴,主要由煎土豆制成,马铃薯作为主要食材,有时还会配以培根、洋葱和奶酪。虽然这条顺着萨林河(Sarine)走向的“鸿沟”并不在地图上,但这条思想的边界还是被居于瑞士的人们从小铭记在心。
今天 Let’s Encrypt 官方也宣布正式对 ACMEv2 和泛域名证书提供支持,想必经常折腾 SSL 证书的同学对于 Let’s Encrypt 这个致力于免费、开放以及自动化的证书颁发机构应该是很熟悉的。
之前 Let’s Encrypt 提供的证书是单域名的,因此新的子域名需要申请签发新的证书。而我一些域名下依附的 API 较多,每次改动子域名都是一套麻烦的操作,签发后再维护一大堆碎片化的证书实在是很让人头疼。
这次趁着机会,我来申请一个泛域名证书,这样今后也会方便许多。顺便我也会记录下申请的过程,方便需要的同学参考。