| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| latest-linux.yml | 2026-03-30 | 376 Bytes | |
| Recordly-linux-x64.AppImage | 2026-03-30 | 195.1 MB | |
| latest.yml | 2026-03-30 | 345 Bytes | |
| Recordly-windows-x64.exe.blockmap | 2026-03-30 | 177.6 kB | |
| Recordly-windows-x64.exe | 2026-03-30 | 170.1 MB | |
| latest-mac.yml | 2026-03-30 | 750 Bytes | |
| Recordly-arm64.zip.blockmap | 2026-03-30 | 189.1 kB | |
| Recordly-arm64.dmg.blockmap | 2026-03-30 | 190.0 kB | |
| Recordly-arm64.zip | 2026-03-30 | 180.5 MB | |
| Recordly-arm64.dmg | 2026-03-30 | 186.2 MB | |
| Recordly-x64.dmg | 2026-03-30 | 192.7 MB | |
| Recordly-x64.dmg.blockmap | 2026-03-30 | 199.0 kB | |
| Recordly-x64.zip | 2026-03-30 | 187.0 MB | |
| Recordly-x64.zip.blockmap | 2026-03-30 | 196.6 kB | |
| Hotfixes v1.1.9 source code.tar.gz | 2026-03-30 | 73.8 MB | |
| Hotfixes v1.1.9 source code.zip | 2026-03-30 | 73.9 MB | |
| README.md | 2026-03-30 | 4.0 kB | |
| Totals: 17 Items | 1.3 GB | 0 | |
Hotfixes
Recording
finalizeStoredVideonow catches errors fromvalidateRecordedVideoinstead of propagating them — the editor will open regardless of whether ffmpeg validation succeeds or fails.- Native capture on macOS uses a single
Date.now()for video, system audio, and mic filenames instead of callingDate.now()three separate times. desktopCapturer.getSources()failures are caught and return an empty array instead of throwing.
Windows
- WASAPI capture thread now calls
CoInitializeEx(nullptr, COINIT_MULTITHREADED)at thread start andCoUninitialize()before return. Added HRESULT logging forGetNextPacketSizeandGetBufferfailures. - Added
session.defaultSession.setDevicePermissionHandler(() => true)— was previously missing, onlysetPermissionCheckHandlerandsetPermissionRequestHandlerwere set. setRecordingState(false)is nowawaited before callingmuxNativeWindowsRecording()in the stop path. Previously it was fire-and-forget, meaningsnapshotCursorTelemetryForPersistence()may not have run before the mux handler calledpersistPendingCursorTelemetry().- Camera and microphone permission status is now logged at startup on Windows.
Window Selection
- Removed
.filter((source) => Boolean(source.thumbnail))from source enumeration — windows without thumbnails now appear in the list. - Swift window list helper now filters out untitled auxiliary windows from apps that have multiple windows (e.g. Arc). Minimum window size changed to 50x50.
- Highlight animation no longer queries bounds via AppleScript
front window. Instead it callsresolveMacWindowBounds()which looks up the exactCGWindowIDin the CGWindowList.
HUD
- HUD overlay uses
setIgnoreMouseEvents(true, { forward: true })so transparent areas are click-through. Drag is handled via JSmousedown/mousemovewith IPC to togglesetIgnoreMouseEventson enter/leave of the drag region.
热修复
录制
finalizeStoredVideo现在会捕获validateRecordedVideo的错误而非向上传播——无论 ffmpeg 验证是否成功,编辑器都会打开。- macOS 原生捕获的视频、系统音频和麦克风文件名现在使用同一个
Date.now(),而非分别调用三次。 desktopCapturer.getSources()失败时会被捕获并返回空数组,不再抛出异常。
Windows
- WASAPI 捕获线程现在在线程启动时调用
CoInitializeEx(nullptr, COINIT_MULTITHREADED),返回前调用CoUninitialize()。为GetNextPacketSize和GetBuffer失败添加了 HRESULT 日志。 - 添加了
session.defaultSession.setDevicePermissionHandler(() => true)——此前仅设置了setPermissionCheckHandler和setPermissionRequestHandler。 - 停止录制路径中,
setRecordingState(false)现在会被await,然后再调用muxNativeWindowsRecording()。此前是 fire-and-forget,意味着snapshotCursorTelemetryForPersistence()可能在 mux handler 调用persistPendingCursorTelemetry()之前尚未执行。 - Windows 上启动时现在会记录摄像头和麦克风的权限状态。
窗口选择
- 从源枚举中移除了
.filter((source) => Boolean(source.thumbnail))——没有缩略图的窗口现在会出现在列表中。 - Swift 窗口列表辅助程序现在会过滤掉拥有多个窗口的应用中无标题的附属窗口(如 Arc)。最小窗口尺寸改为 50x50。
- 高亮动画不再通过 AppleScript
front window查询边界,改为调用resolveMacWindowBounds(),通过精确的CGWindowID在 CGWindowList 中查找。
HUD
- HUD 覆盖层使用
setIgnoreMouseEvents(true, { forward: true }),透明区域可点击穿透。拖动通过 JSmousedown/mousemove处理,在进入/离开拖动区域时通过 IPC 切换setIgnoreMouseEvents。
Join the Discord for Recordly: https://discord.gg/FcfNN4S9m