NoisyTyper: 戴上耳机, Mac 变身打字机,进入疯狂码字模式,开始一个人的啪啪啪… [已开源]

2015-12-08 02:54:37 +08:00
 Aladdin


http://ialaddin.github.io/NoisyTyper-Swift

很久以前用了一个叫做 NoisyTyper 的小工具,每次敲击键盘的时候,都会打字机的感觉,很 high 。

那个是使用 C++ 配合一套第三方框架写的开源程序(代码仓库里的 Readme.md 有相关的介绍链接)。当时想改进一些功能,让退出方式更友好一些。它时不时的还卡一下,看了眼代码,觉得实现的太麻烦了,但一直没空去折腾。

今天抽空用 Swift 重写了一份,核心逻辑都没有改变,但简单,直接很多,顺便增加了我当时希望拥有的调节音量的功能,以及更友好的退出功能。

代码十分简单,对 Mac 程序感兴趣的朋友可以看看,有空也可以谢谢小工具给大家把玩一下 =D

推荐初次使用的时候,戴上耳机,将 Mac 音量调整至 1/3 ,再打开惯用的背景音乐,调整 NoisyTyper 的音量。

所有的调整都将被自动存储,下次会使用之前的配置。

Enjõy !

4877 次点击
所在节点    分享发现
30 条回复
Aladdin
2015-12-08 14:50:51 +08:00
@kiray 都差不多。

我看了这个代码,它应该和我是参考的同一个项目,也就是 OF 示例项目 NoisyTyper ,我在我的代码库的 Readme 里有相关的链接(开头处)。有兴趣的话,可以去看看。

我不喜欢原版设定的退出方式,太 hardcore ,希望交互更直接一些,仅此而已 =D

@exploreexe 关于不同步的问题,你说的是连按的时候可能存在音效没播放完整就被结束的情况吧?这里也没有想好,如何处理比较舒服。

目前的做饭是这样的:为了节省内存, 5 种不同键程的核心区按键(也就是字母+数字区域)的各有一个常驻的 player 实例对象。每次敲击的时候,并没有严格的去按照实际的键盘布局进行调用播放,目前只是随机的选择其中一个进行播放,所以存在可能选中的 player 对象正在播放音效且没播完的情况。我会阶段当前播放,进行重新播放该音效。这个是我发现的一个 bug ,算是设计缺陷。

现在我有几种想法:

1. 按照实际的键盘布局来指定键程,固定按键与声音的关系。这样就会少了很多的冲突,因为实际上正常击键也很少有快速的连续用一个按键的情况。
2. 或者现在的随机方法改进,如果随机到播放中的音效,就尝试新的随机过程,但这样也无法避免在 0.1s 内连续击键 5 次以上的冲突情况。
3. 或者比较费内存的方式,每次击键就生成实例,设置一个生成上限。连续击键的次数在一定范围内,就不断的新建实例进行播放,播放完毕后释放掉就好。但这样的设计本身就存在一定的危险性。

有好的建议不妨讨论下~
Aladdin
2015-12-08 17:41:40 +08:00
@Echoldman 适配 retina display 完成,可以重新下载一个试试看
@exploreexe 尝试修改了不同步的问题
Aspx
2015-12-08 18:28:23 +08:00
完全没找到打字的感觉,跟打架一样
Aladdin
2015-12-08 19:02:40 +08:00
@Aspx 2333 不喜欢的话,可以删掉了~ 谢谢尝试
Showfom
2015-12-08 19:09:20 +08:00
Aladdin
2015-12-08 19:31:25 +08:00
@Showfom yeah ,看完以后觉得 Rust 还是好复杂,还是 Swift 简单 =D
Slienc7
2015-12-08 22:53:44 +08:00
所以有没有类似的实现鼠标点击音效~~~
Aladdin
2015-12-08 23:48:57 +08:00
@xgowex 可以加啊,有什么好的音效吗?我可以给你添加上这个功能 =D
firstinout
2015-12-09 15:29:01 +08:00
感谢楼主,音效不错,如果可以加入更多音效的选择就更好了(比如机械键盘)
fbqk2008
2018-11-17 12:27:33 +08:00
打字的音效有什么用吗?这类需求真奇怪啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/241880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX