文章目录
- 1. ✅方法一:直接基于日历
- 2. 方法二:基于脚本
- 2.1 音乐文件获取(ncm转mp3)
- 2.2 创建播放音乐任务
- 2.3 脚本实现定时播放
1. ✅方法一:直接基于日历
左侧新建一个日历,不然会和其他日历混淆,看起来会有点乱
然后每小时建立一个日程,选择每天重复
, 永不
结束 重复,在提醒
里选择自定义,可以打开文件,这里可以直接打开网易云下载的ncm文件,但是网易云音乐打开的速度会比自带的音乐app(需要把音乐文件转为MP3才行)打开速度慢
效果类似下面:
就自动啦!
2. 方法二:基于脚本
2.1 音乐文件获取(ncm转mp3)
- 从网易云音乐下载,得到
XXX保健操.ncm
格式 - 下载ncmdump
- macos根据自己的CPU,下载
ncmdump-1.5.0-darwin-arm64.tar.gz
或者ncmdump-1.5.0-darwin-x86_64.tar.gz
- macos根据自己的CPU,下载
- 解压后,接着执行以下命令:
# 1. 修改文件为可执行 chmod +x ncmdump # 2. 测试是否可以使用 sudo ./ncmdump -h # 这里可能需要去 隐私 里 允许执行 # 3. 开始转换, 默认转换后文件保存在当前目录,同时 名称和ncm一样,后缀为mp3 ./ncmdump XXX.ncm
2.2 创建播放音乐任务
搜索 自动操作(Automator)
打开后选取 应用程序
搜索apple
, 双击 运行AppleScript
,直到右侧出现这个代码编辑框
输入以下内容:
tell application "Music"set theFile to POSIX file "/Users/XXX/Downloads/上海交响乐团 - 眼保健操乐曲.mp3" ---这个路径替换为你的音乐文件路径open theFileplay
end tell
类似这样:
然后点击那个▶️按钮,就会自动打开音乐app,并播放这个文件了
然后command+S
保存,记住保存位置,下面还要用
要检查一下那个保存的那个playmusic.app
是不是可以open
# 双击`playmusic.app`可以正确执行,不代表命令行里可以正确执行# 命令行里open一下,是否可以正确执行
> open playmusic.app# 不行的话,改一下权限
> chmod +x playmusic.app
2.3 脚本实现定时播放
直接随便找一个文本编辑器,写入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict><key>Label</key><string>com.playmusic.on_the_hour</string><key>ProgramArguments</key><array><string>/usr/bin/open</string><string>/Users/huangshan/Downloads/playmusic.app</string> <!-- 替换为你实际的 PlayMusic.app 路径 --></array><key>StartCalendarInterval</key><array><dict><key>Hour</key><integer>8</integer> <!-- 每天8点 --><key>Minute</key><integer>0</integer> <!-- 整点 --></dict><dict><key>Hour</key><integer>9</integer> <!-- 每天9点 --><key>Minute</key><integer>0</integer></dict><dict><key>Hour</key><integer>10</integer> <!-- 每天10点 --><key>Minute</key><integer>0</integer></dict><dict><key>Hour</key><integer>11</integer> <!-- 每天11点 --><key>Minute</key><integer>0</integer></dict><dict><key>Hour</key><integer>13</integer> <!-- 每天13点 --><key>Minute</key><integer>0</integer></dict><dict><key>Hour</key><integer>14</integer> <!-- 每天14点 --><key>Minute</key><integer>0</integer></dict><dict><key>Hour</key><integer>15</integer> <!-- 每天15点 --><key>Minute</key><integer>0</integer></dict><dict><key>Hour</key><integer>16</integer> <!-- 每天16点 --><key>Minute</key><integer>0</integer></dict><dict><key>Hour</key><integer>17</integer> <!-- 每天17点 --><key>Minute</key><integer>0</integer></dict></array><key>RunAtLoad</key><true/></dict>
</plist>
做眼保健操的时间自己写,我是按照一小时一次写的,
- 然后把这个文件的名称保存为类似:
com.playmusic.on_the_hour.plist
的 - 然后移动到
/Library/LaunchDaemons
文件夹中,可能会提示需要密码
然后命令行运行:
# 1. 确保 plist 文件的所有者是 root,把文件的所有者设置为 root,并将组设置为 wheel,这是 macOS 系统服务所需的默认权限。
sudo chown root:wheel /Library/LaunchDaemons/com.playmusic.on_the_hour.plist# 2.644 权限确保:所有者 (root) 可以读写 (rw-) 组和其他用户只能读取 (r--)
sudo chmod 644 /Library/LaunchDaemons/com.playmusic.on_the_hour.plist# 3. 加载并启动该任务
sudo launchctl load /Library/LaunchDaemons/com.playmusic.on_the_hour.plist# 查看是否启动
> launchctl list | grep application.com.apple.Automator
84137 0 application.com.apple.Automator.1152921500311880162.1152921500311880167# 停止该定时任务
sudo launchctl unload /Library/LaunchDaemons/com.playmusic.on_the_hour.plist
有点类似于linux系统里的 Systemctl
命令
试过了,确实可以实现这个效果,但是调整起来有点麻烦