Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

随心录(FreeRec)

一款 iOS 录音应用,支持开始 / 暂停 / 结束录音,以及录音的查询、修改、删除、导出,并可通过 iPhone 硬件快捷键(操作按钮 / 轻点背面)快速开始、暂停录音。

功能

  1. 录音控制:开始、暂停、继续、结束(自动保存为 m4a)。
  2. 录音管理:列表查询、关键词搜索、修改标题、删除、导出(分享到微信 / 文件 / AirDrop 等)。
  3. 硬件快捷键:通过 URL Scheme(freerec://)配合“快捷指令”绑定到 iPhone 的操作按钮或轻点背面,一键开始 / 暂停录音。

目录结构

FreeRec/
├── project.yml                 # XcodeGen 配置
├── FreeRec/
│   ├── FreeRecApp.swift        # App 入口 + URL Scheme 处理
│   ├── Models/Recording.swift  # 数据模型
│   ├── Services/
│   │   ├── AudioRecorder.swift # 录音引擎(AVAudioRecorder)
│   │   └── RecordingStore.swift# 文件 + 元数据存储
│   ├── Views/                  # SwiftUI 视图
│   └── Assets.xcassets
└── FreeRec.xcodeproj           # 由 XcodeGen 生成(如已生成)

构建与运行

前置条件:安装 Xcode(App Store 或 developer.apple.com),本仓库只包含源码与工程描述,不含已编译产物。

  1. 安装 XcodeGen(若工程文件需要重新生成):

    brew install xcodegen
  2. 生成 Xcode 工程:

    cd ~/FreeRec
    xcodegen generate
  3. 打开工程并运行:

    open FreeRec.xcodeproj

    在 Xcode 里选择你的 iPhone(或模拟器),点击 Run。

  4. 真机签名:首次真机运行需在 Xcode 中配置签名:

    • 选中 FreeRec Target → Signing & Capabilities → 勾选 Automatically manage signing → 选择你的 Apple ID Team。
    • 若 Bundle ID com.tanzt.freerec 冲突,可在 project.yml 里改成自己的,然后重新 xcodegen generate。

说明:AVAudioRecorder 的暂停/继续会写入同一个音频文件,因此“暂停-继续”多次最终只生成一条连续录音。

硬件快捷键配置(操作按钮 / 轻点背面)

iOS 不允许第三方 App 通过公开 API 直接监听音量键等硬件按键。但可以通过快捷指令 + URL Scheme 实现物理按键控制:

支持的 URL 指令

指令 作用
freerec://start 开始录音(或从暂停恢复)
freerec://pause 暂停 / 继续 切换
freerec://stop 结束并保存
freerec://toggle 开始 ↔ 暂停 切换

步骤 A:创建快捷指令

打开“快捷指令”App:

  1. 新建快捷指令 → 添加操作 → 搜索“打开 URL”。
  2. URL 填入 freerec://toggle(推荐:单击开始、再按暂停)。
  3. 根据需要再建几个:freerec://start、freerec://stop。
  4. 命名,例如“随心录-开始/暂停”。

步骤 B:绑定到硬件按键(二选一)

方式一:操作按钮(iPhone 15 Pro / 16 / 17 Pro 系列)

  • 设置 → 操作按钮 → 滑动到“快捷指令”→ 选择“随心录-开始/暂停”。

方式二:轻点背面(iPhone 8 及以上均支持)

  • 设置 → 辅助功能 → 触控 → 轻点背面 → “轻点两下 / 三下” → 选择“随心录-开始/暂停”。

配置完成后,按一下操作按钮或轻点背面,即可在不打开 App 的情况下触发录音(App 会被调起并开始/暂停录音)。

技术说明

  • 录音:AVAudioRecorder,AAC(m4a),44.1kHz 单声道。
  • 存储:音频文件保存在 Documents/Recordings/,元数据保存在同目录 Recordings.json。
  • 后台录音:已在 Info.plist 声明 UIBackgroundModes: audio,录音开始后切后台可继续。
  • 权限:首次录音会请求麦克风权限;拒绝后可在“设置-隐私与安全-麦克风”开启。

已知限制

  • iOS 不允许第三方 App 监听音量键录音(公开 API 限制),故采用“操作按钮 / 轻点背面”方案。
  • 通过快捷键从后台冷启动时,首次可能需先在 App 内完成麦克风授权。
  • 录音被电话等打断的自动保存属于后续增强项,当前依赖手动“结束”保存。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages