Commit Graph

  • d74543e3ed fix(iOS): simplify recorder to local file only, add app icon master yumoqing 2026-07-17 21:55:49 +08:00
  • 1832672081 fix(iOS): add MTAudioProcessingTap for audio capture, fix PTS timing yumoqing 2026-07-17 21:47:01 +08:00
  • bfe81cbc82 feat(iOS): replace HLS segment download with AVPlayer screen capture yumoqing 2026-07-17 21:40:41 +08:00
  • d0cecebe69 fix(iOS): add User-Agent header to all HLS segment + playlist requests yumoqing 2026-07-17 21:36:53 +08:00
  • 1f8ecb9bcb fix(iOS): replace FileHandle(forWritingTo:) with Data concatenation for TS merge yumoqing 2026-07-17 21:31:51 +08:00
  • f73bc4532e fix(iOS): show recorder errors as full-screen overlay instead of fleeting toast yumoqing 2026-07-17 21:28:15 +08:00
  • 04fb3acecc fix(iOS): use UIKit UIActivityViewController directly instead of SwiftUI .sheet yumoqing 2026-07-17 21:21:16 +08:00
  • 4aec892151 fix(iOS): add copyLocalFile for local file recording on iOS yumoqing 2026-07-17 21:14:36 +08:00
  • 96d617617f chore: remove accidentally committed xcodeproj.bak yumoqing 2026-07-17 20:58:47 +08:00
  • da4495ab3e fix: Xcode ViewBuilder compile error — wrap NSLog in closure for iOS sheet yumoqing 2026-07-17 20:58:22 +08:00
  • 04990674cc fix: save dialog not appearing after recording on macOS/iOS yumoqing 2026-07-17 20:27:49 +08:00
  • 01bf7d6f4a fix(iOS): Connect+Browse buttons — Connect opens Files for auth, Browse opens file picker. Add auto-opens Files. yumoqing 2026-07-04 20:06:30 +08:00
  • 6c7a6e567f fix(iOS): simplified — server list + system file picker. FileManager can't browse SMB directly on iOS, use .fileImporter instead. yumoqing 2026-07-04 20:02:16 +08:00
  • 3cb5b1d8a4 fix(iOS): connect flow — new SMB opens Files for auth, saved servers use FileManager directly. Both flows save to history. yumoqing 2026-07-04 19:57:33 +08:00
  • 6a605451e4 fix: use browseURL scheme to detect SMB context — iOS maps SMB files to file:// URLs yumoqing 2026-07-04 19:55:07 +08:00
  • 80e332bda0 feat: iOS — saved server list, built-in file browser, HTTP stream server yumoqing 2026-07-04 19:51:42 +08:00
  • b1a04526a2 feat: SMB streaming via AVAssetResourceLoaderDelegate — no file copy, reads on-demand. yumoqing 2026-07-04 18:24:10 +08:00
  • b9e65f306a fix(iOS): copy SMB files to local Documents before playing — AVPlayer can't handle smb:// URLs yumoqing 2026-07-04 18:10:31 +08:00
  • bf734454f8 fix(iOS): SMB connect flow — use FileManager first, fallback to Files app. Extract shared buildFileItems helper. yumoqing 2026-07-04 18:06:50 +08:00
  • 592a23b02e fix(iOS): SMB URL detection — show alert guiding to Files app instead of trying to play. Add import UIKit. yumoqing 2026-07-04 18:00:44 +08:00
  • d01baed1c9 test: SMB network share verified — mount /Volumes/sambashare, browse media dirs. Fix NSWorkspace API + MediaLibraryView platform guard yumoqing 2026-07-04 17:39:13 +08:00
  • 0a9ed6e746 feat: network file browser — browse SMB/NFS shares, auto-pair ASS subtitles yumoqing 2026-07-04 17:33:58 +08:00
  • 1412c234f8 fix(iOS): move pendingExportURL to PlayerBridge — SwiftUI can now observe it and trigger save sheet yumoqing 2026-07-03 08:29:02 +08:00
  • 3ed5696ae0 fix(iOS): read file data into memory BEFORE revoking security-scoped access, prevents exists=false yumoqing 2026-07-03 08:22:14 +08:00
  • 6503712be9 fix: show file diagnostics (exists, size, magic bytes) directly on error screen yumoqing 2026-07-03 08:19:53 +08:00
  • 0e172e015e fix: add file magic number verification to diagnose corruption yumoqing 2026-07-03 08:18:33 +08:00
  • beaeb3b4c6 fix: ensure AVAudioSession is active right before player.play(), add diagnostic logging yumoqing 2026-07-03 08:17:32 +08:00
  • 15b26ce416 fix: show full error details (code+domain+filename) on playback failure yumoqing 2026-07-03 08:14:10 +08:00
  • e81af97437 fix: add device diagnostic log (miniplayer_diag.log in Documents) to trace playback issues yumoqing 2026-07-02 22:58:57 +08:00
  • 37d7338823 fix: change audio mode back to .default — .moviePlayback breaks all playback on iOS 26 yumoqing 2026-07-02 22:41:07 +08:00
  • 6f786cd1a8 fix: revert to .moviePlayback audio mode for proper video A/V sync yumoqing 2026-07-02 22:36:01 +08:00
  • 0388ae2a45 fix: add diagnostics for local file playback — file existence, audio route, player rate yumoqing 2026-07-02 22:31:16 +08:00
  • 58c34250c5 fix(iOS): replace lock overlay with allowsHitTesting — icon now reliably unlocks yumoqing 2026-07-02 22:24:51 +08:00
  • d519e9aa17 fix(iOS): fix lock overlay ZStack order — icon now above overlay, unlock shows toolbar yumoqing 2026-07-02 22:20:26 +08:00
  • 01116180d1 fix: compile errors — frame API + sheet binding for let hlsRecorder yumoqing 2026-07-02 22:13:26 +08:00
  • 4c38b06860 修复四个问题: 录制后弹保存窗/本地文件播放/左上角锁定/音轨循环切换 yumoqing 2026-07-02 22:10:55 +08:00
  • a74a021518 fix(iOS): add CFBundleIcons to Info.plist so app icon loads from Assets.car yumoqing 2026-07-02 21:57:33 +08:00
  • 75a319d7fb fix(iOS): fix presentActivitySheet keyWindow deprecation, use windowScene.keyWindow + fallback yumoqing 2026-07-02 21:54:21 +08:00
  • bfb7631714 fix(iOS): improve PiP KVO observation, fix recording stop flow and export sheet yumoqing 2026-07-02 21:13:24 +08:00
  • bf7d3de9ba iOS: PiP画中画、AirPlay投屏、录制保存弹窗、播放记录持久化恢复 yumoqing 2026-07-02 08:16:33 +08:00
  • ce5878957e fix(iOS): fix recording, playback compatibility, and media library UI yumoqing 2026-07-02 07:44:09 +08:00
  • 88f1ecbe9c fix(iOS): rewrite HLSRecorder for continuous recording until user stops yumoqing 2026-07-01 23:18:39 +08:00
  • 44708f39ef feat(iOS): add recording, media library, and local file import yumoqing 2026-07-01 22:55:35 +08:00
  • 4bfd4e5565 fix: .ipa 复制到项目根目录,Xcode Add App 弹窗可见 yumoqing 2026-07-01 22:05:33 +08:00
  • 6c21bdbef7 fix: iOS .ipa 打包成功 - 修复 Team ID、Bundle.module、@main 入口点 yumoqing 2026-07-01 21:38:52 +08:00
  • d22a5037b8 feat: iOS/macOS 双平台打包支持 yumoqing 2026-07-01 08:29:16 +08:00
  • 103b994c60 debug: 添加录制流程日志 yumoqing 2026-07-01 08:01:45 +08:00
  • 16fdd72271 fix: 用 NSEvent.addLocalMonitorForEvents 替代 .onHover/tracking area yumoqing 2026-07-01 07:48:16 +08:00
  • fde83a87bc fix: 用 NSTrackingArea 替代 .onHover 解决标题栏闪烁和红绿灯丢失问题 yumoqing 2026-07-01 07:42:16 +08:00
  • ec8c3bd51c fix: title bar shows/hides based on window hover, not just top strip yumoqing 2026-06-30 23:54:36 +08:00
  • 5a031a57ea fix: fully hide title bar including traffic lights yumoqing 2026-06-30 23:49:32 +08:00
  • 03b8ef8d40 feat: URL deduplication for media library and queue yumoqing 2026-06-30 23:45:02 +08:00
  • 7c1a84c413 feat: title bar hover to show/hide yumoqing 2026-06-30 23:27:14 +08:00
  • 610f619a35 feat: add player status overlay (loading/buffering/error) yumoqing 2026-06-30 23:10:20 +08:00
  • b1937bfc16 fix: 修复新增availability字段导致JSON解码失败 yumoqing 2026-06-30 22:43:11 +08:00
  • af710e4e4f feat: 流媒体URL并发可用性检测 yumoqing 2026-06-30 22:41:04 +08:00
  • 48011dd4f0 fix: 修复M3U导入后UI冻结问题 yumoqing 2026-06-30 08:49:18 +08:00
  • 05afadfd11 feat: 媒体库 - 播放记忆、多播放列表、M3U导入、模糊搜索、喜欢/标签系统 yumoqing 2026-06-30 00:28:14 +08:00
  • 49948049c0 fix: show save dialog even on error if file has content; better default filename yumoqing 2026-06-28 21:46:41 +08:00
  • 221075ce8a refactor: replace AVAssetWriter+Tap recording with StreamRecorderKit FFmpegRecorder yumoqing 2026-06-28 18:19:10 +08:00
  • 70337add95 fix: remove audioMix pre-install in playIndex - breaks HLS playback yumoqing 2026-06-28 15:21:10 +08:00
  • f68476d57f fix: move video capture off main thread + filter stale end-of-playback notifications yumoqing 2026-06-28 10:34:50 +08:00
  • 9160b3ce2b fix: pre-install audioMix in playIndex to prevent video freeze on record start yumoqing 2026-06-28 10:30:20 +08:00
  • cff2bd2793 fix: use kCMPersistentTrackID_Invalid for HLS audio tap yumoqing 2026-06-28 10:24:04 +08:00
  • 4ba3ccde21 diag: add stop-time tracks check to detect HLS variant switching yumoqing 2026-06-28 10:14:32 +08:00
  • 1eff22a1ad fix: use playerItem.tracks for HLS audio track discovery yumoqing 2026-06-28 09:52:29 +08:00
  • 1880eeb3d3 fix: use async loadTracks for HLS stream audio tracks - HLS AVURLAsset.tracks returns empty array synchronously - must use asset.loadTracks(withMediaType: .audio) yumoqing 2026-06-28 09:15:50 +08:00
  • 70b264bcc8 fix: revert to actual trackID for audioMix (kCMPersistentTrackID_Invalid never fires tap) yumoqing 2026-06-27 17:59:45 +08:00
  • 7cfeec1f15 feat: recording diagnostic report system yumoqing 2026-06-27 17:45:00 +08:00
  • fb1bd32bbf fix: audio recording - double buffer + HLS variant switch support yumoqing 2026-06-27 15:44:55 +08:00
  • 1733ecc7bc fix: 修复录制视频无音频问题 yumoqing 2026-06-27 13:55:49 +08:00
  • f1ecbf2e91 fix: replace MTAudioProcessingTap with CoreAudio device capture for HLS audio recording yumoqing 2026-06-27 10:58:09 +08:00
  • f0e468122b fix: trim whitespace from URL input to prevent 404 errors yumoqing 2026-06-27 10:43:47 +08:00
  • 339664ebc1 fix: 修复HLS流媒体录制无音频问题 yumoqing 2026-06-26 08:51:10 +08:00
  • d4a39dd7c3 fix: block app termination while recording is finalizing yumoqing 2026-06-25 21:27:02 +08:00
  • eb3e98d567 fix: window close exits app + save dialog diagnostics yumoqing 2026-06-25 21:08:59 +08:00
  • cf53afd7c8 fix: improve HLS audio track discovery - async load fallback + detailed diagnostics yumoqing 2026-06-25 20:51:27 +08:00
  • f5e35a6ee7 fix: close main window exits app; playlist panel close doesn't yumoqing 2026-06-25 20:47:23 +08:00
  • 8cfb072370 fix: HLS audio via KVO+polling for playerItem.tracks, diagnostic logging yumoqing 2026-06-25 09:12:02 +08:00
  • be0cf09941 fix: HLS audio (playerItem.tracks + better tap callback) + window title sync with toolbar yumoqing 2026-06-25 09:08:02 +08:00
  • 6e94bb46b7 feat: window title hides/shows with toolbar on idle timeout yumoqing 2026-06-25 09:00:56 +08:00
  • fc95254500 feat: 录制完成后弹出保存对话框,支持用户改名 yumoqing 2026-06-25 08:56:47 +08:00
  • ff20ffe07f fix: HLS音频录制+边录边写+结束仅改名移动 yumoqing 2026-06-25 08:29:39 +08:00
  • d9f12ced06 fix: MTAudioProcessingTapCallbacks参数名initCallback→init yumoqing 2026-06-24 23:16:08 +08:00
  • 5ae4cc4e70 feat: HLS流音频录制——MTAudioProcessingTap替代AVAssetReader yumoqing 2026-06-24 23:14:47 +08:00
  • c7bb63bb7e fix: HLS播放加自定义headers + 录制finishWriting错误日志 yumoqing 2026-06-24 22:59:44 +08:00
  • ff4902ffe6 fix: 视频只有一帧+音频超长——重写录制时间基准和音频限速 yumoqing 2026-06-24 22:08:09 +08:00
  • 06345b07de fix: 视频只有一帧 + 音频长度不对 yumoqing 2026-06-24 21:19:10 +08:00
  • 42f3cf2b84 fix: 音视频同步——音频从 firstFrameTime 开始读取 yumoqing 2026-06-24 21:07:07 +08:00
  • 60a3369d82 fix: 录制停止时音频未同步停止导致输出文件超长 yumoqing 2026-06-24 21:01:39 +08:00
  • cbc03b40b4 Fix: use Timer for video capture, set isRunning before capture loop yumoqing 2026-06-24 20:44:51 +08:00
  • 6c31894a6d Fix: record audio from source URL, not microphone yumoqing 2026-06-24 20:28:31 +08:00
  • 5d9e93ba95 Record video source via AVPlayerItemVideoOutput, not screen capture yumoqing 2026-06-24 20:04:08 +08:00
  • 87c66c3c70 Recording: red icon, live duration display, save dialog with editable filename yumoqing 2026-06-24 19:56:07 +08:00
  • 35de7263e9 Fix: app quit on playlist close, request screen capture permission, playlist as panel yumoqing 2026-06-24 19:50:54 +08:00
  • a90a60437b Set app as regular GUI app to show in Dock yumoqing 2026-06-24 19:47:10 +08:00
  • 5960c5f7c8 Move record button to front of toolbar for visibility yumoqing 2026-06-24 19:45:36 +08:00
  • 8af1140b06 Add drag-and-drop file/URL playback and screen recording with audio yumoqing 2026-06-24 19:33:21 +08:00
  • b929b1eb6e Set metadata types after session starts (availableMetadataObjectTypes empty before) yumoqing 2026-06-24 19:28:38 +08:00
  • e87921b59f Request camera permission before QR scanning yumoqing 2026-06-24 19:25:42 +08:00