我的音乐节奏 Mac App
听歌很多,分类也很多,最后还是决定按 BMP 分类,当然是手动 BMP 分类(尝试音频识别失败,可能水平不够);
原来自己写了 iOS App 版和 Web 版,实际使用都不是很方便;
SO,决定搞一个全局热键 Mac 版,状态栏显示;
一、创建 Mac App
这还用说?so easy;
二、搞个状态栏
// 状态栏控件
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[self.statusItem.button setTitle:@"music"];
虽然是个 Item,但是属性是个 NSButton,哇,API 太像了
三、监听键盘事件
- 本地监听(App 打开时)
// 本地事件
[NSEvent addLocalMonitorForEventsMatchingMask:NSEventMaskKeyDown handler:^NSEvent * _Nullable(NSEvent * _Nonnull event) {
if (event.type == NSEventTypeKeyDown) {
if ([event keyCode] == 49) {
[self musicLocalAction];
}
}
return event;
}];
- 全局监听
// 监听全局事件
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSEventMaskKeyDown) handler:^(NSEvent * event) {
if (event.type == NSEventTypeKeyDown) {
if ([event keyCode] == 49) {// 空格实测,也不是 ASCII
[self musicGlobalAction];
}
}
}];
- 补充操作,不然可能监听不到键盘事件
系统偏好 - 辅助功能 - 添加 App
info.plist - Privacy - AppleEvents Sending Usage Description
四、补充逻辑
状态栏和键盘全局监听都可以了,补充逻辑即可,刷新状态栏信息,舒服;
再优化一下界面;
五、附件
Demo 地址:https://github.com/JuYiWei/Mac-Status-Bar-Demo
网页版:http://www.jrscz.com/myServer/project/devTools/music.html
我的网易云音乐用户名:居然是村长