Skip to content

Releases: BH2VOQ/RLPlayer-Mac

RLPlayer 1.1.1-beta4

RLPlayer 1.1.1-beta4 Pre-release
Pre-release

Choose a tag to compare

@BH2VOQ BH2VOQ released this 29 Oct 16:52

English

RLPlayer 1.1.1-beta4 is a bug-fix release for settings persistence.

Fixed: an app update could change your interface settings

  • Language, theme, UI style and the streaming view mode are now read from rlplayer-settings.conf
    and rendered into the very first paint. The config is the single source of truth; the WebKit
    localStorage copy is only a fallback used when the config has no value yet.
  • loadSettings() no longer prefers the local cache, which was the remaining path that let a stale
    browser cache from an older build override your choice after upgrading.
  • Switching language still applies immediately and keeps you on the same page/settings tab.

Verification (macOS 27.0.1 / arm64, this machine)

  • build 0 errors · serial ctest 113/113 · backend 22/22 · production faults 12/12 · UI 7/7 ·
    i18n 19/19 · native first-frame PASS
  • The i18n suite now simulates config-vs-cache conflicts for language (both directions), theme and
    UI style, and asserts the config wins.
  • DMG: all binaries arm64, minos=13.0, ad-hoc signed, in-bundle FLAC→PCM byte-identical

Not verified

  • Real-device paths (STARVING recovery, DoP carrier streaming, UPnP volume calibration, macOS 15
    icon/bubble) — no audio output was used.
  • Windows gates are not run on this machine.

中文

1.1.1-beta4 是设置持久化的修复版。

修复:升级客户端可能改掉你的界面设置

  • 语言、主题、界面风格、流媒体视图(网格/列表)现在全部从 rlplayer-settings.conf 读取,
    并直接渲染进首帧。配置文件是唯一真相源;WebKit 的 localStorage 只在配置里还没有值时兜底。
  • loadSettings() 不再"本地缓存优先"——那正是升级后旧缓存覆盖用户选择的最后一条路径。
  • 语言切换仍然是选中即生效,并停留在当前页面/页签。

验证(macOS 27.0.1 / arm64,本机实测)

  • 构建 0 error · 串行 ctest 113/113 · 后端 22/22 · 生产故障 12/12 · UI 7/7 · i18n 19/19 · 原生首帧 PASS
  • i18n 套件新增"配置 vs 过期缓存"冲突断言:语言(双向)、主题、界面风格,均要求配置胜出
  • DMG:全部 arm64、minos=13.0、adhoc 签名、包内 FLAC→PCM 逐字节相等

未验

  • 真机项(STARVING 恢复、DoP 真实载波、UPnP 音量校准、macOS 15 图标/气泡)本轮未做,全程未输出音频。
  • Windows 门禁本机跑不了。

RLPlayer 1.1.1-beta2

RLPlayer 1.1.1-beta2 Pre-release
Pre-release

Choose a tag to compare

@BH2VOQ BH2VOQ released this 29 Oct 15:47

English

RLPlayer 1.1.1-beta2 is a mid-cycle beta on top of beta1: it adds an interface language switch and finishes the diagnostics multi-instance work.

New: Chinese / English interface

  • Settings → General → Appearance → Language. Switching applies immediately and keeps you on the current page and settings tab (no bounce back to Albums).
  • Full English UI: navigation, all ten settings tabs, player bar, context menus, help, diagnostics page, tooltips (? bubbles) and input placeholders. 1,513 phrase pairs with glossary-locked hi-fi terminology (Dither, Noise shaping, Upsampling, Exclusive mode, Bit-perfect, DSD modulator, PEQ, Impulse response, …).
  • The native macOS app menu (About / License / Quit) follows the same setting; the menu itself updates after a restart.

Fixed: diagnostics ownership across instances

  • A second instance now writes its event log under instances/<sid>/ instead of rotating the same rlplayer-events.jsonl, and can no longer overwrite the primary instance's run marker.
  • /api/diag reports the real failure code (diag.event_log_unwritable / diag.run_marker_unwritable / diag.dir_lock_unwritable) instead of a hard-coded one. A failing run marker is no longer reported as a log failure.

Layout

  • English labels no longer clip in Quick Start and the DSD badge no longer overlaps the preset title. English-only CSS rules; the Chinese layout is untouched.

Verification (macOS 27.0.1 / arm64, this machine)

  • build 0 errors · serial ctest 113/113 · backend 22/22 · production faults 12/12 · UI 7/7 · i18n 13/13 · native first-frame PASS
  • DMG: all binaries arm64, minos=13.0, ad-hoc signed (valid on disk), in-bundle FLAC→PCM byte-identical

Not verified

  • Real-device paths (STARVING recovery, DoP carrier streaming, UPnP volume calibration, macOS 15 icon/bubble) — no audio output was used in this cycle.
  • Windows gates are not run on this machine (verify.ps1 and friends need PowerShell).

中文

1.1.1-beta2 是 beta1 之上的中途版:新增界面中英切换,并把诊断的多实例收尾做完。

新增:中英界面

  • 设置 → 通用 → 外观 → 语言。选中即切换,并留在当前页面与页签,不会跳回专辑。
  • 整站英文化:导航、十个设置页签、播放条、右键菜单、帮助、诊断页、? 气泡与输入占位符。共 1,513 条对照,Hi-Fi 术语按行业惯例锁定(Dither / Noise shaping / Upsampling / Exclusive mode / Bit-perfect / DSD modulator / PEQ / Impulse response…)。
  • macOS 原生菜单(关于 / 许可证 / 退出)跟随同一设置,菜单本身需重启 App 更新。

修复:诊断多实例所有权

  • 第二实例的事件日志改写到 instances/<sid>/,不再与主实例轮转同一个 rlplayer-events.jsonl,也不会覆盖主实例的运行标记。
  • /api/diag 回传真实失败码(diag.event_log_unwritable / diag.run_marker_unwritable / diag.dir_lock_unwritable),不再硬编码;运行标记写失败不再被误报成日志失败。

排版

  • 英文下快速开始不再截断,DSD 徽标不再压住预设标题;英文规则只作用于 data-lang=en,中文排版零改动。

验证(macOS 27.0.1 / arm64,本机实测)

  • 构建 0 error · 串行 ctest 113/113 · 后端 22/22 · 生产故障 12/12 · UI 7/7 · i18n 13/13 · 原生首帧 PASS
  • DMG:全部 arm64、minos=13.0、adhoc 签名(valid on disk)、包内 FLAC→PCM 逐字节相等

未验

  • 真机项(STARVING 恢复、DoP 真实载波、UPnP 音量校准、macOS 15 图标/气泡)本轮未做,全程未向任何音频设备输出。
  • Windows 门禁本机跑不了(缺 PowerShell)。

1.1.1-beta1

1.1.1-beta1 Pre-release
Pre-release

Choose a tag to compare

@BH2VOQ BH2VOQ released this 28 Oct 16:30

English

RLPlayer 1.1.1-beta1 (beta) — this is a beta test build. It fixes the whole “streaming server is configured but still unusable” chain.

Fixes

  • Blank page after configuring a streaming server — an old record with empty base URL and username held the enabled slot, so a newly added server could never become active; browsing then requested an empty URL and failed with URL using bad/illegal format or missing URL. Unusable records are now skipped when choosing the active server. Historical config is worked around in memory and never rewrites your config file.
  • Settings page could not load the server list — GET /api/src/config was wrongly blocked with 405 by the “side-effect endpoints must use POST” rule.
  • “Delete” / “Test” buttons did nothing — the in-app WKWebView does not show JS dialogs by default, so confirm() was always false and delete/reset buttons silently failed.
  • Streaming track titles showed a string of ids — remote tracks are downloaded to the cache before playback and the UI took the name from the cache file name, which used to be the server id. The cache name is now the track title.
  • Artists appeared as tracks at the top level of streaming — Subsonic getIndexes returns artist objects without an isDir field; the old code treated them as “not a directory”, so clicking one tried to play the artist id.
  • Favorites showed the full remote path instead of the track name.

New

  • The streaming page now uses the same card grid as albums, with a “list” switch in the top-right corner; the choice is remembered.
  • Opening an album now leads to an album detail page: large cover, album name, artist · N tracks · total duration, Play all / Add to queue / Shuffle, followed by the track table (index / title / artist / duration / “+” to queue).

Install

  • Apple Silicon (arm64) only, macOS 13.0 or later.
  • Download RLPlayer-1.1.1-beta1-macOS-arm64.dmg, double-click to mount, then drag RLPlayer.app into Applications.
  • The first time you access a LAN server, macOS asks for Local Network permission — you must allow it, otherwise the NAS is unreachable.

Known limitations

  • The first LAN connection after a reinstall/update may fail once with Couldn't connect to server; click Retry (the system is re-evaluating the local-network grant).
  • “Play all” downloads the whole album into the local cache before playback starts (by design: original files only, no transcoding); large albums take a while.
  • For multi-disc albums (album → CD1 → tracks) the detail page title shows “CD1” instead of the album name.

中文

RLPlayer 1.1.1-beta1(测试版)

这是 beta 测试版,主要修的是「流媒体服务器配好了却用不了」这一串问题。

修复

  • 配置完流媒体服务器后页面空白:启用的服务器被一条 base/用户名全空的旧记录卡住,新增的服务器永远抢不到启用位,浏览时请求空地址,报 URL using bad/illegal format or missing URL。现在启用状态会跳过不可用记录。历史配置只在内存里回退,不会改写你的配置文件。
  • 设置页拿不到服务器列表:GET /api/src/config 被「副作用端点必须 POST」的规则误拦成 405。
  • 设置页「删除」「测试」按钮没反应:应用内网页视图(WKWebView)默认不弹 JS 对话框,confirm() 恒为 false,导致删除/重置类按钮全部静默失效。
  • 流媒体曲名显示成一串 id:远程曲目先下载到缓存再播放,而界面显示名取自文件名,旧版缓存名用的是服务端 id。现在缓存名就是曲名。
  • 流媒体顶层把「艺术家」显示成歌曲:Subsonic 的 getIndexes 返回的艺术家对象里根本没有 isDir 字段,旧代码按「不是目录」处理,点一下就去播放艺术家 ID。
  • 「我的最爱」里远程曲目显示整串路径。

新增

  • 流媒体页改成专辑同款的卡片网格,右上角可切「列表」,选择会记住。
  • 点进专辑后是专辑详情页:大封面、专辑名、艺术家 · N 首 · 总时长、播放整张 / 加入队列 / 随机播放,下面是曲目表(序号/标题/艺术家/时长/「+」入队)。

安装

  • 仅支持 Apple Silicon(arm64),macOS 13.0 及以上。
  • 下载 RLPlayer-1.1.1-beta1-macOS-arm64.dmg,双击挂载,把 RLPlayer.app 拖进「应用程序」。
  • 首次访问局域网服务器时,macOS 会询问「本地网络」权限,必须允许,否则连不上 NAS。

已知限制

  • 重装/更新后第一次连局域网可能报一次 Couldn't connect to server,点「重试」即可(系统的本地网络授权在重新评估)。
  • 「播放整张」会先把整张专辑下载到本地缓存再开始播放(本项目的设计是只取原始文件、不转码),大专辑需要等一下。
  • 多碟专辑(专辑 → CD1 → 曲目)的详情页标题会显示「CD1」而不是专辑名。

RLPlayer 1.1.0(macOS arm64)

Choose a tag to compare

@BH2VOQ BH2VOQ released this 28 Oct 13:48

English

What's Changed

This is the 1.1.0 stable release. Single macOS arm64 package with ffmpeg/ffprobe bundled; drag RLPlayer-1.1.0-macOS-arm64.dmg into Applications.

🐛 Bug Fixes

  • Seek bar dragging — holding and dragging no longer "stays put and jumps once on release": the bar previews on press, follows the pointer 1:1 while dragging (even outside the track), and commits the seek once on release. Progress now advances continuously frame by frame instead of 2.5 whole-step jumps per second, and is no longer pulled back by status polling after release. Also fixed "+5 s right after a seek jumped backwards" by correcting the relative-seek base (ec44148)
  • Volume stepping — arrow keys and the wheel now use fixed 0.5 dB steps (Shift: 0.1 dB), instead of "0.15 dB at the top, 52.8 dB to mute". Pressing ↑ while muted returns to the lowest audible step −54.5 dB; double-clicking the dB number or the bar resets to 0 dB; the wheel on the bar adjusts ±0.5 dB (ec44148)
  • Opening a track that no longer exists killed the process — when the ffmpeg pipe write end closed, the kernel sent SIGPIPE and killed the app ("click once, app disappears, no crash report, no exit log"). SIGPIPE is now ignored and write failures surface as an error code (7fa1f7f)
  • Bottom bar kept the previous title after switching tracks — /api/meta responses arrived out of order and the switch moment was not refreshed; added request-sequence and track guards (1911ede)
  • Wrong-track lyrics — tracks with the same or a similar name could store another song's lyrics (measured: a 150 s track stored the lyrics of a different 272 s track, 4 cases). Lyrics are now validated (title ≥0.9 / known artist ≥0.8 / duration veto) before being stored (ea9f43a)
  • (?) tooltips clipped in Settings — first-row tooltips expanded upward and were clipped by the scroll area (up to 58.94 px). They now flip vertically and clamp horizontally against the viewport and all clipping ancestors (ea9f43a)
  • Dock icon too large and missing sizes — icon body reduced from 91.0% (233/256) to 80.5%, 512/1024 sizes added, transparent corners (ea9f43a)

✨ Improvements

  • The queue panel's ✕ is now the word "Clear" — it was unclear whether it cleared the queue or closed the panel (e0c1b39)
  • Removed the wrong parenthetical notes from the UI-style tooltip and dropdown; only the style name remains (ea9f43a)

🧰 Internal / Dependencies

3 internal changes
  • Root cause of the broken system ffmpeg archived: Homebrew x265 4.3 bumped the soname 216→217 while the ffmpeg keg 8.1.2_1 still binds 216 ⟹ SIGABRT(134) on start. Replaced /usr/local/bin/{ffmpeg,ffprobe} with a self-built arm64 lite build (brew keg untouched) (0e91a02)
  • Added two interaction acceptance scripts, both with a --red false-proof mode: tools/check_seekdrag.js (12 criteria) and tools/check_volume_db.js (13 criteria) (ec44148)
  • Version set to 1.1.0, replacing beta5 (5d8a29d)

⚠️ Known limitations

  • Software volume gain is currently a hard switch without a ramp; fast drags or repeated arrow presses may in theory produce "zipper" noise. A 10–20 ms ramp is planned.
  • The audible software volume range is 0 … −54.5 dB; below that is true mute (backend values ≤ −59.5 dB are zeroed).

Full Changelog: v1.1.0-beta5...v1.1.0


中文

What's Changed

本次是 1.1.0 正式版。macOS arm64 单包(内置 ffmpeg/ffprobe),RLPlayer-1.1.0-macOS-arm64.dmg 拖入「应用程序」即可。

🐛 Bug Fixes

  • 进度条拖动 —— 按住拖动时条子不再「停在原地、松手才跳一次」:按下即预览、拖动 1:1 跟手(拖出轨道也继续跟),松手只提交一次跳转;播放中的进度由 2.5 次/秒的整格跳变改为逐帧连续推进;松手后不再被状态轮询拉回原位。顺带修正「刚跳转完按 +5 秒反而退回原处」的相对跳转基准 (ec44148)
  • 音量步进 —— 方向键/滚轮改为固定档位:每步 0.5 dB(Shift 0.1 dB),不再是「顶端一步 0.15 dB、静音一步 52.8 dB」;静音状态下按 ↑ 直接回到最低可闻档 −54.5 dB;双击 dB 数字或音量条回 0 dB;音量条上滚轮 ±0.5 dB (ec44148)
  • 点开目录里已不存在的曲目导致进程直接退出 —— 根因是 ffmpeg 管道写端关闭时内核发 SIGPIPE 打死进程(表现为「点一下就闪退、无崩溃报告、无退出日志」);现忽略 SIGPIPE,写失败退化为错误码 (7fa1f7f)
  • 换歌后底栏仍显示上一首曲名 —— /api/meta 响应乱序(旧请求后到覆盖新值)+ 切歌瞬间不刷新;加请求序号与曲目双守卫 (1911ede)
  • 歌词串曲 —— 同名/近似曲目会把别的歌的歌词存进来(实测 150 秒的歌存入 272 秒另一首的歌词,共 4 例);新增歌词身份校验(标题 ≥0.9 / 已知艺人 ≥0.8 / 时长否决)后才入库 (ea9f43a)
  • 设置页 (?) 气泡被裁 —— 首排气泡向上展开时被滚动区裁掉(顶部最多裁 58.94px);改为按「视口 ∩ 全部裁剪祖先」上下翻转、左右夹紧 (ea9f43a)
  • Dock 图标偏大且缺档 —— 图标实体由 91.0%(233/256)收到 80.5%,补齐 512/1024 档,四角透明 (ea9f43a)

✨ 改进

  • 队列面板的 ✕ 图标改成文字「清除」——原来分不清是「清空队列」还是「关闭面板」 (e0c1b39)
  • 界面风格气泡与下拉去掉错误的括号说明,只留风格名 (ea9f43a)

🧰 Internal / Dependencies

共 3 项内部改动
  • 系统 ffmpeg 坏链根因归档:Homebrew x265 升 4.3 后 soname 216→217,而 ffmpeg keg 8.1.2_1 仍绑 216 ⟹ 启动即 SIGABRT(134);已用自建 arm64 精简版替换 /usr/local/bin/{ffmpeg,ffprobe}(brew keg 未动) (0e91a02)
  • 新增两个交互验收脚本,均带 --red 反证模式:tools/check_seekdrag.js(12 条判据)、tools/check_volume_db.js(13 条判据) (ec44148)
  • 版本号落定 1.1.0(替换 beta5) (5d8a29d)

⚠️ 已知限制

  • 软件音量增益目前是硬切(无斜坡),快速拖动音量条或连按方向键时理论上可能出现「拉链」噪声;计划后续加 10–20 ms 斜坡。
  • 软件音量可闻范围 0 … −54.5 dB,其下为真静音(后端 ≤ −59.5 dB 直接置零)。

Full Changelog: v1.1.0-beta5...v1.1.0

1.1.0-beta5

1.1.0-beta5 Pre-release
Pre-release

Choose a tag to compare

@BH2VOQ BH2VOQ released this 28 Oct 13:49

English

What's Changed

🚀 New Features

  • [Network & diagnostics] Device discovery now emits fine-grained diagnostics: /api/cast/devices and /api/upnp report packet counters, multicast/broadcast reachability and response statistics. When no device is found, the probe log states the concrete reason (restricted interface / no response / proxy conflict) with troubleshooting guidance (0588123)

🐛 Bug Fixes

  • [UPnP discovery stack] Fixed LAN devices not being found:
    • Fixed "Internet Sharing" creating a same-subnet bridge100 virtual bridge that took over routing, making SSDP fail with EHOSTUNREACH. Reworked to per-interface binding via IP_BOUND_IF plus 3 rounds of subnet broadcast as a fallback when multicast is blocked (0588123);
    • Added NSLocalNetworkUsageDescription to the app Info.plist; macOS 15+ otherwise blocks local-network access without showing the permission prompt (0588123).
  • [UPnP discovery deadlock] Fixed a deadlock when a device answered from multiple IPs: a blocking connect to an unreachable secondary address exhausted kernel SYN retransmits inside the devMutex_ critical section, leaving the UI stuck on "discovering renderers…". Reworked to non-blocking connect with an 800 ms timeout and a total discovery budget (0588123)
  • [UPnP control connection] SOAP control connections (http_post) now bind to the matching device's physical interface (CURLOPT_INTERFACE), fixing "device found but playback fails to connect" on multi-NIC / virtual-bridge setups (0588123)
  • [Cast thread safety] Reworked stop-cast thread synchronization to a safe join, removing self-join deadlocks and duplicate calls returning 500 (4ba070b)
  • [Auto-update] Prerelease comparison now splits the letter prefix and numeric suffix before comparing, fixing beta10 < beta4 reverse ordering (26518e5)
  • [Window interaction] Clicking close now hides the window immediately, removing the visual pause during background synchronization (4ba070b)

🧰 Internal / Dependencies

2 internal maintenance changes
  • README now links the Windows upstream repository (okhuoyanyan/RLPlayer2) (020be50)
  • Added test_upnp_discovery, covering interface filtering, netmask calculation and timeout budget with 21 offline assertions (0588123)

Full Changelog: v1.1.0-beta4...v1.1.0-beta5


中文

What's Changed

🚀 New Features

  • [网络与诊断] 设备发现接口增加细粒度诊断输出:/api/cast/devices 与 /api/upnp 增加发包计数、组播/广播连通状态与应答统计;未发现设备时根据探测日志输出具体原因(网卡受限/无应答/代理冲突)与排查指引 (0588123)

🐛 Bug Fixes

  • [UPnP 发现网络栈] 解决局域网设备搜不到问题:
    • 修复本机开启「Internet 共享」时生成同网段 bridge100 虚拟网桥并抢占路由、导致向同网段发送 SSDP 报 EHOSTUNREACH 的问题;重构为按物理网卡通过 IP_BOUND_IF 逐卡定向绑定发包,并引入 3 轮子网广播作为组播被阻断时的兜底探测 (0588123);
    • 在应用 Info.plist 中补充 NSLocalNetworkUsageDescription,解决 macOS 15+ 因缺少使用说明直接由系统阻断局域网网络且不弹出授权确认框的缺陷 (0588123)。
  • [UPnP 发现死锁] 修复局域网设备存在多 IP 应答时,因次级不可达地址的阻塞式 connect 耗尽内核 SYN 重传时间、且该过程处于 devMutex_ 临界区导致的死锁(现象为界面永久卡在「正在发现渲染器…」);重构为非阻塞 connect + 800ms 超时并设置整轮发现总预算截断 (0588123)
  • [UPnP 控制连接] SOAP 控制连接(http_post)强制绑定至匹配设备的物理网卡(CURLOPT_INTERFACE),解决多网卡/虚拟网桥环境下「搜得到设备但点击播放提示连接失败」的问题 (0588123)
  • [投放线程安全] 优化停止投放线程同步,改走安全 join 机制,消除自身 join 死锁与重复调用引发异常返回 500 的隐患 (4ba070b)
  • [自动更新] 预发布版本号比对拆解「字母前缀 + 数字后缀」进行分段识别,修复原逻辑中 beta10 < beta4 的逆向排序缺陷 (26518e5)
  • [窗口交互] 点击关窗按钮立即隐藏窗口实体,消除后台同步等待阶段的视觉停顿 (4ba070b)

🧰 Internal / Dependencies

共 2 项内部维护改动
  • README 文档补齐 Windows 版上游仓库链接(okhuoyanyan/RLPlayer2)(020be50)
  • 新增 test_upnp_discovery 发现链路单测套件,覆盖物理网卡过滤、子网掩码计算与超时预算等 21 项离线断言 (0588123)

Full Changelog: v1.1.0-beta4...v1.1.0-beta5

1.1.0-beta4

1.1.0-beta4 Pre-release
Pre-release

Choose a tag to compare

@BH2VOQ BH2VOQ released this 28 Oct 13:50

English

What's Changed

🚀 New Features

  • [Audio output] New "follow source" bit-depth option: avoids unnecessary padding or resampling and requests the source's real native bit depth (ecf64a0)
  • [Playback & playlists] Four-state play mode switching; reworked custom named playlists (/api/sq/*) and play-queue ordering (/api/qorder, /api/qsort), supporting reorder and undo without interrupting playback (6c56a3f, ec99fee)
  • [Install experience] DMG built with dmgbuild with a custom waveform visual and native drag-to-install (d3b453f)

🐛 Bug Fixes

  • [Audio output] Fixed CoreAudio format negotiation misjudging the device's Float32/24-in-32 format as unsupported, which prevented the output backend from opening (3369a01)
  • [Audio output] Fixed parameter extraction using ||0, which replaced the "follow source" -1 default with 0 (3b7eddf)
  • [Process exit] Fixed slow or hanging shutdown (previously up to 70 s+): added HttpCancellationScope to cancel pending HTTP requests cooperatively, an active heartbeat probe in WebUi::stop() and a 2.5 s/3 s hard-exit guard, bringing full exit to a stable 0.15–0.19 s (6b5c1d9, 9dc7284, 1cfb221)
  • [Window & playback] Fixed playback continuing after the window was closed; the close button now cuts the stream immediately (1cfb221)
  • [UPnP cast] Interaction fixes:
    • Clicking now opens the device picker immediately and refreshes inside it, fixing the picker never appearing when no device was available (36bdbc3);
    • The cast dialog is raised to z-index: 120 so the track detail page no longer covers it (ab3c9c6);
    • Fixed the wrong "started playing" toast when stopping a cast; start and stop states are now distinguished (ab3c9c6).
  • [Visuals] Playlist titles and rows align with the sidebar, and a whole row can create a playlist; PEQ header and data rows use opaque zebra backgrounds, fixing text bleed-through in some themes (36bdbc3, e393276)

🧰 Internal / Dependencies

3 internal maintenance / compliance changes
  • Repository-wide license switched to GPL-3.0-or-later (d85c567)
  • Removed leftover Windows and CUDA platform code and build assets (347d3c0)
  • Fixed inconsistent deployment targets of embedded binaries; all four now use minos=13.0 (23d45f5)

Full Changelog: v1.1.0-beta...v1.1.0-beta4


中文

What's Changed

🚀 New Features

  • [音频输出] 输出位深新增「跟随源」选项:避免非必要位深补齐或重采样,可直接请求音频源的真实原始位深 (ecf64a0)
  • [播放与播放列表] 支持四态播放模式切换;重构自定义具名歌单 (/api/sq/*) 与播放队列排序 (/api/qorder, /api/qsort),支持在不中断当前播放的情况下调整顺序与撤销 (6c56a3f, ec99fee)
  • [安装体验] 采用 dmgbuild 构建带专属波形视觉的 DMG 镜像,提供原生拖拽安装方式 (d3b453f)

🐛 Bug Fixes

  • [音频输出] 修复 CoreAudio 输出格式协商将设备层 Float32/24-in-32 格式误判为不支持,导致音频无法打开输出后端的问题 (3369a01)
  • [音频输出] 修复参数提取时使用 ||0 将跟随源的 -1 默认值错误替换为 0 的问题 (3b7eddf)
  • [进程退出] 解决关闭应用耗时过长或挂死(原耗时可达 70s+):引入 HttpCancellationScope 协同取消未完成的 HTTP 请求,WebUi::stop() 增加主动心跳探测与 2.5s/3s 硬上限退出守卫,使进程完全退出耗时稳定在 0.15s~0.19s (6b5c1d9, 9dc7284, 1cfb221)
  • [窗口与播放控制] 修复关闭窗口后后台继续播放的问题,点击关窗按钮第一时间直接切断播放流 (1cfb221)
  • [UPnP 投放] 交互链路优化:
    • 改为点击即弹出设备选择弹窗并在窗内执行刷新,解决无可用设备时弹窗永不出现的异常 (36bdbc3);
    • 投放弹窗层级提升至 z-index: 120,避免被单曲详情页覆盖 (ab3c9c6);
    • 修复停止投放时误提示「开始播放」的问题,明确区分投放启停状态 (ab3c9c6)。
  • [界面视觉] 歌单区标题与行项对齐侧边栏,支持整行新建;PEQ 均衡器表头与数据行调整为不透明斑马纹背景,修复特定主题下的文字穿透 (36bdbc3, e393276)

🧰 Internal / Dependencies

共 3 项内部维护与合规改动
  • 全库开源许可证切换为 GPL-3.0-or-later (d85c567)
  • 清理遗留的 Windows 与 CUDA 废弃平台代码与编译资产 (347d3c0)
  • 修复内嵌二进制部署目标不一致缺陷,统一四件套 minos=13.0 (23d45f5)

Full Changelog: v1.1.0-beta...v1.1.0-beta4

RLPlayer v1.1.0-beta (macOS arm64)

Pre-release

Choose a tag to compare

@BH2VOQ BH2VOQ released this 28 Oct 13:51

English

What's Changed

🚀 New Features

  • [Feedback channel] Zero-config one-click feedback: the old flow depended on a local mail client and silently did nothing without a configured account. Feedback now goes through a Cloudflare Worker to a GitHub Issue, large redacted diagnostic bundles are stored in Cloudflare R2, no token is exposed in the client, and users need no credentials or login (56a4859)

🐛 Bug Fixes

  • [Auto-update] Fixed three defects in checking and installing (524d5db):
    • A dangling string reference made the validator treat a valid download URL as "not in the allowlist" and block installation;
    • On macOS, libcurl did not read the system proxy by default, so update checks always timed out on proxied networks;
    • Added concrete error logging and UI messages when installation fails.

🧰 Internal / Dependencies

2 documentation and infrastructure changes
  • Restructured the README, added architecture notes and 7 real UI screenshots (56a4859)
  • Clarified the standalone native macOS branch positioning (6a48042)

Full Changelog: v1.0.7...v1.1.0-beta


中文

What's Changed

🚀 New Features

  • [反馈通道] 上线零配置一键反馈:解决旧版依赖本地邮件客户端(未配置邮箱时静默无响应)的问题。改走 Cloudflare Worker 中转直达 GitHub Issue,大附件脱敏诊断包直存 Cloudflare R2,客户端零 Token 暴露,无需用户填写凭据或登录账号 (56a4859)

🐛 Bug Fixes

  • [自动更新] 修复检查与安装阶段的三处缺陷 (524d5db):
    • 修复字符串悬垂引用导致校验逻辑将合法下载地址误判为「不在白名单」并拦截安装的问题;
    • 修复 macOS 环境下 libcurl 默认未读取系统代理导致有代理网络下更新检查必定超时的问题;
    • 补充安装失败时的具体错误日志与界面提示。

🧰 Internal / Dependencies

共 2 项文档与基础设施改动
  • 规范化 README 结构,补齐架构说明与 7 张真实界面截图 (56a4859)
  • 明确 macOS 原生独立分支定位 (6a48042)

Full Changelog: v1.0.7...v1.1.0-beta