告别深夜切歌烦恼:用cli3/cli打造Spotify睡眠定时器

告别深夜切歌烦恼:用cli3/cli打造Spotify睡眠定时器

【免费下载链接】cli Command-line tool to customize Spotify client. Supports Windows, MacOS, and Linux. 【免费下载链接】cli 项目地址: https://gitcode.com/gh_mirrors/cli3/cli

你是否曾在睡前听歌却不小心睡过头?是否希望音乐能在设定时间后自动停止,避免整夜播放影响睡眠质量?本文将介绍如何利用cli3/cli工具为Spotify客户端开发一个睡眠定时器扩展,通过简单配置实现音乐自动停止播放功能。

项目基础:cli3/cli工具简介

cli3/cli是一款用于自定义Spotify客户端的命令行工具,支持Windows、MacOS和Linux系统。该工具允许用户通过注入扩展脚本(Javascript)来扩展Spotify功能,如自定义UI、控制播放器行为等。项目核心功能包括:

  • 修改整个UI的颜色主题
  • 注入CSS实现高级样式定制
  • 通过扩展脚本扩展功能
  • 加载自定义应用
  • 移除冗余组件提升性能

完整项目说明参见README.md

技术实现:基于现有扩展的改造方案

虽然当前项目中没有直接提供睡眠定时器功能,但我们可以基于现有的Extensions/loopyLoop.js扩展进行改造。该扩展实现了音乐循环播放功能,其核心原理是监听播放器进度并在特定条件下控制播放行为。

loopyLoop.js的主要结构包括:

// 监听播放器进度事件
Spicetify.Player.addEventListener("onprogress", (event) => {
  if (start != null && end != null) {
    // 进度判断逻辑
    if (percent > end || percent < start) {
      // 控制播放位置
      Spicetify.Player.seek(start);
    }
  }
});

// 创建上下文菜单
const startBtn = createMenuItem("Set start", () => {
  start = mouseOnBarPercent;
  // ...
});

我们可以借鉴这种实现思路,开发睡眠定时器功能。

开发步骤:构建睡眠定时器扩展

1. 创建扩展文件

在项目的Extensions目录下创建sleepTimer.js文件:

// NAME: Sleep Timer
// AUTHOR: Your Name
// VERSION: 0.1
// DESCRIPTION: Auto stop music after specified time

(function SleepTimer() {
  // 扩展实现代码
})();

2. 实现核心功能

睡眠定时器的核心功能包括:

  • 设置倒计时时间
  • 启动/暂停定时器
  • 时间结束时停止播放

关键实现代码如下:

let timer = null;
let remainingTime = 0;

function startTimer(minutes) {
  remainingTime = minutes * 60;
  updateDisplay();
  
  timer = setInterval(() => {
    remainingTime--;
    updateDisplay();
    
    if (remainingTime <= 0) {
      clearInterval(timer);
      Spicetify.Player.pause();
      showNotification("睡眠定时器已结束,音乐已暂停");
    }
  }, 1000);
}

// 创建定时器控制界面
function createTimerUI() {
  // UI实现代码
}

3. 集成到Spotify界面

参考loopyLoop.js的上下文菜单实现,将定时器控制选项添加到进度条右键菜单中:

const setTimerBtn = createMenuItem("设置睡眠定时器", () => {
  const minutes = prompt("请输入睡眠时间(分钟):");
  if (minutes && !isNaN(minutes)) {
    startTimer(parseInt(minutes));
  }
});

const contextMenu = document.createElement("div");
// ...添加菜单到界面

应用场景:改善睡眠的使用示例

歌词显示界面

如上图所示的歌词显示界面(CustomApps/lyrics-plus/),我们可以在类似位置添加睡眠定时器控制界面。用户使用流程如下:

  1. 右键点击播放进度条
  2. 选择"设置睡眠定时器"选项
  3. 输入希望音乐播放的时间(分钟)
  4. 定时器启动后在界面显示剩余时间
  5. 时间结束后自动暂停播放

扩展思路:更多自定义功能

基于cli3/cli的扩展能力,我们还可以实现更多实用功能:

总结与展望

通过本文介绍的方法,我们可以利用cli3/cli工具为Spotify添加睡眠定时器功能,有效解决睡前听歌忘记关闭的问题。这一实现不仅展示了cli3/cli的强大扩展能力,也为用户提供了个性化音乐体验的新思路。

未来可以进一步完善功能,如添加多个定时预设、渐进式降低音量等高级特性。更多扩展开发指南可参考项目官方文档和现有扩展实现。

希望这个小工具能帮助你获得更好的睡眠质量,享受更智能的音乐体验!

【免费下载链接】cli Command-line tool to customize Spotify client. Supports Windows, MacOS, and Linux. 【免费下载链接】cli 项目地址: https://gitcode.com/gh_mirrors/cli3/cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值