Skip to content
This repository was archived by the owner on Feb 23, 2025. It is now read-only.
/ RingtoneHY Public archive

[HY] Customizable macOS ringtone system for online classes.

Notifications You must be signed in to change notification settings

AFObject/RingtoneHY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

华育中学铃声系统 RingtoneHY Project v2

关于本项目

华育中学铃声系统项目(下简称 RingtoneHY)起始于 2020 年疫情期间,在 2022 年网课期间进行了完全重构,是一款 macOS 原生 App,用于在网课期间提供模拟校园铃声的功能,由 23 届 7 班 23786 开发。

本应用采用 GPL 3 协议开源。

安装与配置

安装前检查

由于开发精力有限,无暇顾及向下兼容,RingtoneHY 能且仅能安装在 macOS 11 Big Sur、macOS 12 Monterey 的各个版本上。本应用同时适用于 Intel Silicon 和 Apple Silicon 的 Mac。您可以在安装前检查您的 macOS 版本,或在 Apple 官网获取相关信息。此外,请确定您设置了正确的时区,本软件采用了系统时间,而非 UTC+8 进行铃声的播放。

安装

请打开 dmg 文件,将铃声系统拖拽至「应用程序」文件夹内。点击进入「应用程序」文件夹,右击「RingtoneHY.app」,选择「打开」。若有弹窗,请忽略,并打开应用。

错误处理

若提示「恶意软件」:

  1. 弹出窗口后,请不要关闭窗口,打开 系统偏好设置 - 安全性与隐私 - 通用。
  2. 不断尝试,直到显现「已阻止使用……身份不明的开发者」字样。
  3. 点击旁边的「仍要打开」,即可打开应用。
  4. 其他错误情形,请使用 Google、Bing、Baidu 等搜索引擎寻找答案。

使用

基本功能

RingtoneHY 的主界面仅包含时钟、「下一个日程」提示、置顶和日程表按钮。

您可以拖动主界面的顶部以拖动窗口。

如果您不进行任何设置,RingtoneHY 自安装即可进行周一至周五每天 9 节课、2 次眼保健操,以及早晨点名、午自修的铃声播放。点击窗口的任意位置以停止播放当前铃声。

点击右上角靠左的按钮进行窗口置顶设置。当图标为实心时,窗口置顶;当图标为空心时,窗口不置顶。

「下一项」显示的是当天下一个响铃的时间点的任务名称,如「第 2 节课开始」、「眼保健操」等。

编辑功能

由于不同年级、班级的时间表可能会动态调整,我们加入了「课程表」和「铃声编辑」功能。点击主界面右上角的时钟图标进行编辑。

您可以点击任意一个任务模块右上角的「调整」按钮,编辑任务的名称和开始、结束时间及铃声。您可以修改任务名称为当节课的名称,以达到「课程表」的效果。同时,您也可以点击「删除」按钮以删除任务。

点击周日至周六任意一天的「+」按钮,以添加一个任务,如给自己设置自修课时间等。

您做的任何修改都会被自动保存,但在点击「完成」后才会生效。

异常处理

如果在使用过程中遇到异常,请尝试重启应用。同时,为了减少不必要的麻烦,请避免在任务编辑界面中输入过多无用信息。不保证 RingtoneHY 会执行您所做的不恰当的修改。

建议与反馈

由于软件体量较小,以及校园应用场景的特殊性,初版发布后基本不会做任何更新。您可以自行研究源代码,进行相应的更改。

RingtoneHY 开源在 GitHub 仓库 AFObject/RingtoneHY。您可以在 GitHub 上提 issue 以联系作者。

技术信息

此部分可能有助于理解软件的运作模式。

RingtoneHY 是 macOS 原生 App,采用 Apple Swift 语言进行开发,AppKit 与 SwiftUI 混合的方式搭建 UI。其中 App 生态采用 AppKit,任务设置界面采用 SwiftUI。两者通过 NSHostingController 结合。采用 AVFoundation 库播放铃声。Xcode Version 为 13.3 (13E113),macOS Version 为 12.3。

所有 App 的数据存储在默认的用户设置文件夹中。App 的数据模型有:TimeTaskTaskListTaskStorage,分别保存一个响铃时间点、一个完整的任务、一天的全部任务以及所有的任务列表。

在任务数据没有任何变动的情况下,软件会使用一个队列维护每个响铃时间点。软件内的时间 2 秒获取一次,当需要响铃时,会先开始播放铃声,再将当前的响铃时间点弹出队列。当数据有更新,软件会清空队列,并重新将响铃时间点按时间顺序放入队列中。

最后

由于经验不足和时间仓促,RingtoneHY 可能会有不少不足之处,希望大家能够谅解。本软件不仅作为本人使用 SwiftUI 开发应用的一个尝试,更希望能一定程度上帮助到部分同学。但是,希望疫情尽快过去,这个「铃声系统」没有用武之地。

About

[HY] Customizable macOS ringtone system for online classes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages