macOS设置定时播放眼保健操

文章目录

  • [1. ✅方法一:直接基于日历](#1. ✅方法一:直接基于日历)
  • [2. 方法二:基于脚本](#2. 方法二:基于脚本)
    • [2.1 音乐文件获取(ncm转mp3)](#2.1 音乐文件获取(ncm转mp3))
    • [2.2 创建播放音乐任务](#2.2 创建播放音乐任务)
    • [2.3 脚本实现定时播放](#2.3 脚本实现定时播放)

1. ✅方法一:直接基于日历

左侧新建一个日历,不然会和其他日历混淆,看起来会有点乱

然后每小时建立一个日程,选择每天重复, 永不结束 重复,在提醒里选择自定义,可以打开文件,这里可以直接打开网易云下载的ncm文件,但是网易云音乐打开的速度会比自带的音乐app(需要把音乐文件转为MP3才行)打开速度慢

效果类似下面:

就自动啦!

2. 方法二:基于脚本

2.1 音乐文件获取(ncm转mp3)

  1. 从网易云音乐下载,得到XXX保健操.ncm格式

  2. 下载ncmdump

    • macos根据自己的CPU,下载ncmdump-1.5.0-darwin-arm64.tar.gz或者ncmdump-1.5.0-darwin-x86_64.tar.gz
  3. 解压后,接着执行以下命令:

    bash 复制代码
    # 1. 修改文件为可执行
    chmod +x ncmdump
    # 2. 测试是否可以使用
    sudo ./ncmdump -h
    # 这里可能需要去 隐私 里 允许执行
    # 3. 开始转换, 默认转换后文件保存在当前目录,同时 名称和ncm一样,后缀为mp3
    ./ncmdump   XXX.ncm 

2.2 创建播放音乐任务

搜索 自动操作(Automator)

打开后选取 应用程序

搜索apple, 双击 运行AppleScript,直到右侧出现这个代码编辑框

输入以下内容:

bash 复制代码
tell application "Music"
    set theFile to POSIX file "/Users/XXX/Downloads/上海交响乐团 - 眼保健操乐曲.mp3"  ---这个路径替换为你的音乐文件路径
    open theFile
    play
end tell

类似这样:

然后点击那个▶️按钮,就会自动打开音乐app,并播放这个文件了

然后command+S保存,记住保存位置,下面还要用

要检查一下那个保存的那个playmusic.app是不是可以open

bash 复制代码
#  双击`playmusic.app`可以正确执行,不代表命令行里可以正确执行

#  命令行里open一下,是否可以正确执行
> open playmusic.app

# 不行的话,改一下权限
> chmod +x playmusic.app

2.3 脚本实现定时播放

直接随便找一个文本编辑器,写入以下内容:

txt 复制代码
<?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文件夹中,可能会提示需要密码

然后命令行运行:

bash 复制代码
# 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命令

试过了,确实可以实现这个效果,但是调整起来有点麻烦

相关推荐
周小董1 天前
[1379]mac安装nvm
macos
bossjuemfc1 天前
不记得文件名时,Mac 上的搜索还能怎么做?
macos
2501_915909061 天前
Windows 打开 Xcode 工程,编译调试 Xcode 项目并和 Mac 同事协作
ide·windows·vscode·macos·ios·个人开发·xcode
请为小H留灯2 天前
Mac 常用操作与维护技巧
macos·电脑·清理电脑·常用技巧
hantmac2 天前
不记得文件名时,Mac 上的搜索还能怎么做?
人工智能·macos
这是谁的博客?2 天前
AI 加速器 RTL 数字系统设计深度解析:从 MAC 阵列 Verilog 实现到时序收敛与时钟功耗的芯片落地全链路
人工智能·macos·ai·verilog·数字ic设计·ai芯片·rtl
slacker-kian2 天前
M 系列 Mac 清除顽固的 CorpLink
macos·corplink·m系列
kk_net88992 天前
FSNotes:macOS 和 iOS 上的开源笔记管理器
笔记·其他·macos·ios
zhangfeng11333 天前
com.apple.quarantine 并不是乱码,而是 macOS Gatekeeper 给下载文件自动打上的“隔离属性
macos·策略模式
甘晴void3 天前
我给 Magpie 做了个 macOS 桌宠:106 段动画,请求一多就亮灯
macos·electron·开源·deepseek·桌面宠物·magpie