From c744ac47b3e25090513ff9e4ca719c8bedc3bc18 Mon Sep 17 00:00:00 2001 From: suemor233 Date: Sat, 31 Jan 2026 17:22:27 +0800 Subject: [PATCH 1/5] feat: add ffmpeg player entry point --- .env.example | 8 -- CLAUDE.md | 92 +++++++++++++++++++ src/renderer/src/atoms/settings/player.ts | 2 + .../core/ffmpeg-player/FFmpegPlayer.tsx | 3 + .../{player => core/html5-player}/Context.tsx | 0 .../html5-player/HTML5Player.tsx} | 2 +- .../html5-player}/initialize/Event.tsx | 0 .../html5-player}/initialize/Subtitle.tsx | 0 .../html5-player}/initialize/config.ts | 0 .../html5-player}/initialize/hooks.tsx | 0 .../html5-player}/loading/PlayerProvider.tsx | 4 +- .../html5-player}/loading/Timeline.tsx | 0 .../loading/dialog/MatchAnimeDialog.tsx | 0 .../html5-player}/loading/dialog/hooks.ts | 0 .../html5-player}/loading/hooks.ts | 0 .../html5-player}/setting/Container.tsx | 0 .../html5-player}/setting/Sheet.tsx | 2 +- .../setting/items/audio/Audio.tsx | 0 .../setting/items/damaku/AddDanmaku.tsx | 0 .../setting/items/damaku/Danmaku.tsx | 0 .../setting/items/damaku/DanmakuSource.tsx | 0 .../setting/items/playList/PlayList.tsx | 0 .../setting/items/subtitle/Subtitle.tsx | 0 .../setting/items/subtitle/SubtitleImport.tsx | 0 .../items/subtitle/SubtitleTimeOff.tsx | 0 .../setting/items/subtitle/hooks.ts | 0 .../{VideoSetting.tsx => PlayerSetting.tsx} | 20 +++- .../modules/settings/views/player/index.tsx | 4 +- .../modules/settings/views/player/list.ts | 12 +++ .../modules/shared/MatchDanmakuDialog.tsx | 6 +- src/renderer/src/page/history/index.tsx | 2 +- src/renderer/src/page/player/index.tsx | 33 +++++-- src/renderer/src/providers/TipcListener.tsx | 2 +- 33 files changed, 162 insertions(+), 30 deletions(-) delete mode 100644 .env.example create mode 100644 CLAUDE.md create mode 100644 src/renderer/src/components/modules/core/ffmpeg-player/FFmpegPlayer.tsx rename src/renderer/src/components/modules/{player => core/html5-player}/Context.tsx (100%) rename src/renderer/src/components/modules/{player/index.tsx => core/html5-player/HTML5Player.tsx} (93%) rename src/renderer/src/components/modules/{player => core/html5-player}/initialize/Event.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/initialize/Subtitle.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/initialize/config.ts (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/initialize/hooks.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/loading/PlayerProvider.tsx (95%) rename src/renderer/src/components/modules/{player => core/html5-player}/loading/Timeline.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/loading/dialog/MatchAnimeDialog.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/loading/dialog/hooks.ts (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/loading/hooks.ts (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/Container.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/Sheet.tsx (97%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/audio/Audio.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/damaku/AddDanmaku.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/damaku/Danmaku.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/damaku/DanmakuSource.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/playList/PlayList.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/subtitle/Subtitle.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/subtitle/SubtitleImport.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/subtitle/SubtitleTimeOff.tsx (100%) rename src/renderer/src/components/modules/{player => core/html5-player}/setting/items/subtitle/hooks.ts (100%) rename src/renderer/src/components/modules/settings/views/player/{VideoSetting.tsx => PlayerSetting.tsx} (61%) diff --git a/.env.example b/.env.example deleted file mode 100644 index 4334c731..00000000 --- a/.env.example +++ /dev/null @@ -1,8 +0,0 @@ -VITE_API_URL=https://dandan-proxy.suemor.com/api/v2 -VITE_SENTRY_DSN= - -# mac 公证 -APPLE_ID= -APPLE_APP_SPECIFIC_PASSWORD= -APPLE_TEAM_ID= -APPLE_APP_BUNDLE_ID= \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..1fbb2b6d --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,92 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +Marchen Player is a local anime video player with danmaku (bullet comments) support. It automatically matches danmaku to imported anime videos. Built with Electron, supporting Web, macOS, Windows, and Linux platforms. + +## Development Commands + +```bash +# Install dependencies (requires pnpm) +corepack enable +pnpm install + +# Development +pnpm dev # Start Electron dev server +pnpm dev:web # Start web-only dev server + +# Building +pnpm build # Full build with typecheck +pnpm build:mac # Build macOS (dmg + zip) +pnpm build:win # Build Windows installer +pnpm build:linux # Build Linux AppImage +pnpm build:web # Build web version + +# Code quality +pnpm typecheck # Run TypeScript type checking +pnpm lint # Run ESLint +pnpm lint:fix # Auto-fix ESLint issues +pnpm format # Format with Prettier + +# Version management +pnpm bump # Bump version (uses nbump) +``` + +## Architecture + +### Process Structure (Electron) + +- **Main Process** (`src/main/`): Node.js backend - window management, file system access, FFmpeg operations +- **Preload** (`src/preload/`): Context bridge exposing `electron`, `api`, and `platform` to renderer +- **Renderer** (`src/renderer/`): React frontend application + +### IPC Communication + +Uses `@egoist/tipc` for type-safe IPC between main and renderer processes: + +- **Main handlers**: `src/main/tipc/` - Define routes (app, player, setting, utils) +- **Renderer client**: `src/renderer/src/lib/client.ts` - `tipcClient` for invoking main process, `handlers` for receiving events +- Routes are combined in `src/main/tipc/index.ts` and exported as `Router` type + +Example usage in renderer: +```typescript +import { tipcClient } from '@renderer/lib/client' +const result = await tipcClient?.getAnimeDetailByPath({ path }) +``` + +### State Management + +- **Jotai atoms** (`src/renderer/src/atoms/`): Global state for player, progress, window, and settings +- **TanStack Query**: Server state and API data caching +- **Dexie** (`src/renderer/src/database/`): IndexedDB wrapper for local persistence (history) + +### Routing + +Hash-based routing with React Router v7. Routes defined in `src/renderer/src/router/router.tsx`. Main pages: Player, History. + +### Path Aliases + +Configured in `electron.vite.config.ts`: +- `@main` → `src/main` +- `@renderer` → `src/renderer/src` +- `@pkg` → `package.json` + +### Custom Protocol + +Uses `marchen://` protocol for local file access. Files are referenced with `MARCHEN_PROTOCOL_PREFIX` + absolute path. + +## Key Dependencies + +- **Video**: `@suemor/xgplayer` (custom xgplayer fork), `danmu.js` +- **Subtitles**: `@jellyfin/libass-wasm` (ASS/SSA rendering) +- **Media processing**: `fluent-ffmpeg` with `@ffmpeg-installer/ffmpeg` +- **UI**: Tailwind CSS, shadcn/ui (Radix), DaisyUI, Framer Motion +- **Icons**: Lucide React, Iconify (mingcute) + +## Code Style + +- ESLint config: `eslint-config-hyoban` +- Prettier: No semicolons, single quotes, 100 char width +- Pre-commit hook runs lint-staged on all staged files diff --git a/src/renderer/src/atoms/settings/player.ts b/src/renderer/src/atoms/settings/player.ts index ee872f56..f8897221 100644 --- a/src/renderer/src/atoms/settings/player.ts +++ b/src/renderer/src/atoms/settings/player.ts @@ -2,6 +2,7 @@ import { danmakuDurationList, danmakuEndAreaList, danmakuFontSizeList, + PlayerKernelList, } from '@renderer/components/modules/settings/views/player/list' import type { SelectGroup } from '@renderer/components/modules/shared/setting/SettingSelect' import { useAtom, useAtomValue } from 'jotai' @@ -17,6 +18,7 @@ const createPlayerDefaultSettings = () => { enableTraditionalToSimplified: false, enableAutomaticEpisodeSwitching: false, enableMiniProgress: true, + playerKernel: getSelectedDefaultValue(PlayerKernelList) ?? 'html5', danmakuFontSize: getSelectedDefaultValue(danmakuFontSizeList) ?? '26', danmakuDuration: getSelectedDefaultValue(danmakuDurationList) ?? '15000', danmakuEndArea: getSelectedDefaultValue(danmakuEndAreaList)!, diff --git a/src/renderer/src/components/modules/core/ffmpeg-player/FFmpegPlayer.tsx b/src/renderer/src/components/modules/core/ffmpeg-player/FFmpegPlayer.tsx new file mode 100644 index 00000000..f1d285b7 --- /dev/null +++ b/src/renderer/src/components/modules/core/ffmpeg-player/FFmpegPlayer.tsx @@ -0,0 +1,3 @@ +export const FFmpegPlayer = () => { + return
FFmpeg Player
+} diff --git a/src/renderer/src/components/modules/player/Context.tsx b/src/renderer/src/components/modules/core/html5-player/Context.tsx similarity index 100% rename from src/renderer/src/components/modules/player/Context.tsx rename to src/renderer/src/components/modules/core/html5-player/Context.tsx diff --git a/src/renderer/src/components/modules/player/index.tsx b/src/renderer/src/components/modules/core/html5-player/HTML5Player.tsx similarity index 93% rename from src/renderer/src/components/modules/player/index.tsx rename to src/renderer/src/components/modules/core/html5-player/HTML5Player.tsx index efb719c9..1e5f2cf4 100644 --- a/src/renderer/src/components/modules/player/index.tsx +++ b/src/renderer/src/components/modules/core/html5-player/HTML5Player.tsx @@ -12,7 +12,7 @@ interface PlayerProps { url: string } -export const Player: FC = (props) => { +export const HTML5Player: FC = (props) => { const { playerRef, playerInstance } = useXgPlayer(props.url) return ( <> diff --git a/src/renderer/src/components/modules/player/initialize/Event.tsx b/src/renderer/src/components/modules/core/html5-player/initialize/Event.tsx similarity index 100% rename from src/renderer/src/components/modules/player/initialize/Event.tsx rename to src/renderer/src/components/modules/core/html5-player/initialize/Event.tsx diff --git a/src/renderer/src/components/modules/player/initialize/Subtitle.tsx b/src/renderer/src/components/modules/core/html5-player/initialize/Subtitle.tsx similarity index 100% rename from src/renderer/src/components/modules/player/initialize/Subtitle.tsx rename to src/renderer/src/components/modules/core/html5-player/initialize/Subtitle.tsx diff --git a/src/renderer/src/components/modules/player/initialize/config.ts b/src/renderer/src/components/modules/core/html5-player/initialize/config.ts similarity index 100% rename from src/renderer/src/components/modules/player/initialize/config.ts rename to src/renderer/src/components/modules/core/html5-player/initialize/config.ts diff --git a/src/renderer/src/components/modules/player/initialize/hooks.tsx b/src/renderer/src/components/modules/core/html5-player/initialize/hooks.tsx similarity index 100% rename from src/renderer/src/components/modules/player/initialize/hooks.tsx rename to src/renderer/src/components/modules/core/html5-player/initialize/hooks.tsx diff --git a/src/renderer/src/components/modules/player/loading/PlayerProvider.tsx b/src/renderer/src/components/modules/core/html5-player/loading/PlayerProvider.tsx similarity index 95% rename from src/renderer/src/components/modules/player/loading/PlayerProvider.tsx rename to src/renderer/src/components/modules/core/html5-player/loading/PlayerProvider.tsx index a7ea0d4b..9e481ce1 100644 --- a/src/renderer/src/components/modules/player/loading/PlayerProvider.tsx +++ b/src/renderer/src/components/modules/core/html5-player/loading/PlayerProvider.tsx @@ -4,8 +4,8 @@ import { LoadingStatus, videoAtom, } from '@renderer/atoms/player' -import { MatchAnimeDialog } from '@renderer/components/modules/player/loading/dialog/MatchAnimeDialog' -import { LoadingDanmuTimeLine } from '@renderer/components/modules/player/loading/Timeline' +import { MatchAnimeDialog } from '@renderer/components/modules/core/html5-player/loading/dialog/MatchAnimeDialog' +import { LoadingDanmuTimeLine } from '@renderer/components/modules/core/html5-player/loading/Timeline' import queryClient from '@renderer/lib/query-client' import { apiClient } from '@renderer/request' import { useAtom, useAtomValue } from 'jotai' diff --git a/src/renderer/src/components/modules/player/loading/Timeline.tsx b/src/renderer/src/components/modules/core/html5-player/loading/Timeline.tsx similarity index 100% rename from src/renderer/src/components/modules/player/loading/Timeline.tsx rename to src/renderer/src/components/modules/core/html5-player/loading/Timeline.tsx diff --git a/src/renderer/src/components/modules/player/loading/dialog/MatchAnimeDialog.tsx b/src/renderer/src/components/modules/core/html5-player/loading/dialog/MatchAnimeDialog.tsx similarity index 100% rename from src/renderer/src/components/modules/player/loading/dialog/MatchAnimeDialog.tsx rename to src/renderer/src/components/modules/core/html5-player/loading/dialog/MatchAnimeDialog.tsx diff --git a/src/renderer/src/components/modules/player/loading/dialog/hooks.ts b/src/renderer/src/components/modules/core/html5-player/loading/dialog/hooks.ts similarity index 100% rename from src/renderer/src/components/modules/player/loading/dialog/hooks.ts rename to src/renderer/src/components/modules/core/html5-player/loading/dialog/hooks.ts diff --git a/src/renderer/src/components/modules/player/loading/hooks.ts b/src/renderer/src/components/modules/core/html5-player/loading/hooks.ts similarity index 100% rename from src/renderer/src/components/modules/player/loading/hooks.ts rename to src/renderer/src/components/modules/core/html5-player/loading/hooks.ts diff --git a/src/renderer/src/components/modules/player/setting/Container.tsx b/src/renderer/src/components/modules/core/html5-player/setting/Container.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/Container.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/Container.tsx diff --git a/src/renderer/src/components/modules/player/setting/Sheet.tsx b/src/renderer/src/components/modules/core/html5-player/setting/Sheet.tsx similarity index 97% rename from src/renderer/src/components/modules/player/setting/Sheet.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/Sheet.tsx index 1a9b99ad..e5cabb0f 100644 --- a/src/renderer/src/components/modules/player/setting/Sheet.tsx +++ b/src/renderer/src/components/modules/core/html5-player/setting/Sheet.tsx @@ -14,7 +14,7 @@ import { useQuery } from '@tanstack/react-query' import { useAtom, useAtomValue } from 'jotai' import { createContext, lazy, use, useEffect } from 'react' -import { MatchDanmakuDialog } from '../../shared/MatchDanmakuDialog' +import { MatchDanmakuDialog } from '../../../shared/MatchDanmakuDialog' import { Danmaku } from './items/damaku/Danmaku' import { Subtitle } from './items/subtitle/Subtitle' diff --git a/src/renderer/src/components/modules/player/setting/items/audio/Audio.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/audio/Audio.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/audio/Audio.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/audio/Audio.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/damaku/AddDanmaku.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/damaku/AddDanmaku.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/damaku/AddDanmaku.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/damaku/AddDanmaku.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/damaku/Danmaku.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/damaku/Danmaku.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/damaku/Danmaku.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/damaku/Danmaku.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/damaku/DanmakuSource.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/damaku/DanmakuSource.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/damaku/DanmakuSource.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/damaku/DanmakuSource.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/playList/PlayList.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/playList/PlayList.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/playList/PlayList.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/playList/PlayList.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/subtitle/Subtitle.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/Subtitle.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/subtitle/Subtitle.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/Subtitle.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/subtitle/SubtitleImport.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/SubtitleImport.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/subtitle/SubtitleImport.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/SubtitleImport.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/subtitle/SubtitleTimeOff.tsx b/src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/SubtitleTimeOff.tsx similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/subtitle/SubtitleTimeOff.tsx rename to src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/SubtitleTimeOff.tsx diff --git a/src/renderer/src/components/modules/player/setting/items/subtitle/hooks.ts b/src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/hooks.ts similarity index 100% rename from src/renderer/src/components/modules/player/setting/items/subtitle/hooks.ts rename to src/renderer/src/components/modules/core/html5-player/setting/items/subtitle/hooks.ts diff --git a/src/renderer/src/components/modules/settings/views/player/VideoSetting.tsx b/src/renderer/src/components/modules/settings/views/player/PlayerSetting.tsx similarity index 61% rename from src/renderer/src/components/modules/settings/views/player/VideoSetting.tsx rename to src/renderer/src/components/modules/settings/views/player/PlayerSetting.tsx index 2c301101..25d5d620 100644 --- a/src/renderer/src/components/modules/settings/views/player/VideoSetting.tsx +++ b/src/renderer/src/components/modules/settings/views/player/PlayerSetting.tsx @@ -1,18 +1,32 @@ import { usePlayerSettings } from '@renderer/atoms/settings/player' +import { SettingSelect } from '@renderer/components/modules/shared/setting/SettingSelect' import { SettingSwitch } from '@renderer/components/modules/shared/setting/SettingSwitch' import { isWeb } from '@renderer/lib/utils' import { FieldLayout, FieldsCardLayout } from '../Layout' +import { PlayerKernelList } from './list' -export const VideoSetting = () => { +export const PlayerSetting = () => { const [playerSetting, setPlayerSetting] = usePlayerSettings() return ( + {!isWeb && ( + + + setPlayerSetting((prev) => ({ ...prev, playerKernel: value })) + } + /> + + )} {!isWeb && ( { setPlayerSetting((prev) => ({ ...prev, enableAutomaticEpisodeSwitching: value })) }} @@ -30,4 +44,4 @@ export const VideoSetting = () => { ) -} +} \ No newline at end of file diff --git a/src/renderer/src/components/modules/settings/views/player/index.tsx b/src/renderer/src/components/modules/settings/views/player/index.tsx index d61e1f42..42e9ec0d 100644 --- a/src/renderer/src/components/modules/settings/views/player/index.tsx +++ b/src/renderer/src/components/modules/settings/views/player/index.tsx @@ -1,11 +1,11 @@ import { SettingViewContainer } from '../Layout' import { DanmakuSetting } from './DanmakuSetting' -import { VideoSetting } from './VideoSetting' +import { PlayerSetting } from './PlayerSetting' export const PlayerView = () => { return ( - + ) diff --git a/src/renderer/src/components/modules/settings/views/player/list.ts b/src/renderer/src/components/modules/settings/views/player/list.ts index cedf53d7..4d2aa1c1 100644 --- a/src/renderer/src/components/modules/settings/views/player/list.ts +++ b/src/renderer/src/components/modules/settings/views/player/list.ts @@ -79,3 +79,15 @@ export const danmakuEndAreaList = [ value: '1', }, ] satisfies SelectGroup[] + +export const PlayerKernelList = [ + { + label: 'HTML5', + value: 'html5', + default: true, + }, + { + label: 'FFmpeg(实验)', + value: 'ffmpeg', + }, +] diff --git a/src/renderer/src/components/modules/shared/MatchDanmakuDialog.tsx b/src/renderer/src/components/modules/shared/MatchDanmakuDialog.tsx index 213dad94..3ae80446 100644 --- a/src/renderer/src/components/modules/shared/MatchDanmakuDialog.tsx +++ b/src/renderer/src/components/modules/shared/MatchDanmakuDialog.tsx @@ -7,9 +7,9 @@ import { RouteName, useCurrentRoute } from '@renderer/router' import { useQuery, useQueryClient } from '@tanstack/react-query' import { useAtomValue, useSetAtom } from 'jotai' -import { showMatchAnimeDialogAtom } from '../player/loading/dialog/hooks' -import { MatchAnimeDialog } from '../player/loading/dialog/MatchAnimeDialog' -import { saveToHistory } from '../player/loading/hooks' +import { showMatchAnimeDialogAtom } from '../core/html5-player/loading/dialog/hooks' +import { MatchAnimeDialog } from '../core/html5-player/loading/dialog/MatchAnimeDialog' +import { saveToHistory } from '../core/html5-player/loading/hooks' export const MatchDanmakuDialog = () => { const { hash } = useAtomValue(showMatchAnimeDialogAtom) diff --git a/src/renderer/src/page/history/index.tsx b/src/renderer/src/page/history/index.tsx index 01fc982c..080ec33e 100644 --- a/src/renderer/src/page/history/index.tsx +++ b/src/renderer/src/page/history/index.tsx @@ -1,6 +1,6 @@ import { useAppSettings, useAppSettingsValue } from '@renderer/atoms/settings/app' import { RouterLayout } from '@renderer/components/layout/root/RouterLayout' -import { showMatchAnimeDialog } from '@renderer/components/modules/player/loading/dialog/hooks' +import { showMatchAnimeDialog } from '@renderer/components/modules/core/html5-player/loading/dialog/hooks' import { MatchDanmakuDialog } from '@renderer/components/modules/shared/MatchDanmakuDialog' import { Badge } from '@renderer/components/ui/badge' import { FunctionAreaButton, FunctionAreaToggle } from '@renderer/components/ui/button' diff --git a/src/renderer/src/page/player/index.tsx b/src/renderer/src/page/player/index.tsx index 23b09feb..a4a0cba9 100644 --- a/src/renderer/src/page/player/index.tsx +++ b/src/renderer/src/page/player/index.tsx @@ -1,6 +1,8 @@ -import { Player } from '@renderer/components/modules/player' -import { useVideo } from '@renderer/components/modules/player/loading/hooks' -import { VideoProvider } from '@renderer/components/modules/player/loading/PlayerProvider' +import { usePlayerSettingsValue } from '@renderer/atoms/settings/player' +import { FFmpegPlayer } from '@renderer/components/modules/core/ffmpeg-player/FFmpegPlayer' +import { HTML5Player } from '@renderer/components/modules/core/html5-player/Html5Player' +import { useVideo } from '@renderer/components/modules/core/html5-player/loading/hooks' +import { VideoProvider } from '@renderer/components/modules/core/html5-player/loading/PlayerProvider' import { cn, isWeb } from '@renderer/lib/utils' import { AnimatePresence, m } from 'framer-motion' import type { FC } from 'react' @@ -9,6 +11,7 @@ import { useCallback, useMemo, useRef } from 'react' export default function VideoPlayer() { const { importAnimeViaIPC, importAnimeViaDragging, video } = useVideo() const fileInputRef = useRef(null) + const { playerKernel } = usePlayerSettingsValue() const { url } = video const manualImport = useCallback(() => { if (isWeb) { @@ -17,16 +20,30 @@ export default function VideoPlayer() { importAnimeViaIPC() }, [importAnimeViaIPC]) - const content = useMemo( - () => (url ? : ), - [url, manualImport], - ) + const content = useMemo(() => { + if (!url) { + return + } + switch (playerKernel) { + case 'html5': { + return + } + case 'ffmpeg': { + return + } + + default: { + return + } + } + }, [url, manualImport]) + return (
e.preventDefault()} - className={cn('flex size-full items-center justify-center ')} + className={cn('flex size-full items-center justify-center')} > {content} {!url && ( diff --git a/src/renderer/src/providers/TipcListener.tsx b/src/renderer/src/providers/TipcListener.tsx index f6e84907..c6361035 100644 --- a/src/renderer/src/providers/TipcListener.tsx +++ b/src/renderer/src/providers/TipcListener.tsx @@ -3,7 +3,7 @@ import type { useAppSettingsValue } from '@renderer/atoms/settings/app' import { appSettingAtom } from '@renderer/atoms/settings/app' import { jotaiStore } from '@renderer/atoms/store' import { WindowState, windowStateAtom } from '@renderer/atoms/window' -import { useVideo } from '@renderer/components/modules/player/loading/hooks' +import { useVideo } from '@renderer/components/modules/core/html5-player/loading/hooks' import { useSettingModal } from '@renderer/components/modules/settings/hooks' import { settingTabs } from '@renderer/components/modules/settings/tabs' import { toast } from '@renderer/components/ui/toast/use-toast' From 4c41e025f0540c372526e6fb6939bef482920e27 Mon Sep 17 00:00:00 2001 From: suemor233 Date: Sat, 31 Jan 2026 17:27:50 +0800 Subject: [PATCH 2/5] fix: ci --- src/renderer/src/page/player/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/src/page/player/index.tsx b/src/renderer/src/page/player/index.tsx index a4a0cba9..76d8412d 100644 --- a/src/renderer/src/page/player/index.tsx +++ b/src/renderer/src/page/player/index.tsx @@ -1,6 +1,6 @@ import { usePlayerSettingsValue } from '@renderer/atoms/settings/player' import { FFmpegPlayer } from '@renderer/components/modules/core/ffmpeg-player/FFmpegPlayer' -import { HTML5Player } from '@renderer/components/modules/core/html5-player/Html5Player' +import { HTML5Player } from '@renderer/components/modules/core/html5-player/HTML5Player' import { useVideo } from '@renderer/components/modules/core/html5-player/loading/hooks' import { VideoProvider } from '@renderer/components/modules/core/html5-player/loading/PlayerProvider' import { cn, isWeb } from '@renderer/lib/utils' From 079e7fb6622a2e1945c16840f406799c3736e747 Mon Sep 17 00:00:00 2001 From: suemor233 Date: Sat, 31 Jan 2026 21:00:10 +0800 Subject: [PATCH 3/5] feat: add ffmpeg decoding --- .gitignore | 3 +- build/entitlements.mac.plist | 12 - build/icon.icns | Bin 125222 -> 0 bytes build/icon.ico | Bin 108454 -> 0 bytes build/icon.png | Bin 103419 -> 0 bytes electron.vite.config.ts | 12 + native/binding.gyp | 78 + native/decoder.cpp | 454 + package.json | 6 +- pnpm-lock.yaml | 200 + repomix-output.xml | 14665 ++++++++++++++++ src/main/index.ts | 12 +- src/main/initialize/native-addon.ts | 86 + src/main/tipc/player.ts | 1 + src/main/windows/main.ts | 2 + src/preload/index.ts | 113 +- src/renderer/src/atoms/player.ts | 2 + .../core/ffmpeg-player/FFmpegPlayer.tsx | 334 +- .../modules/core/ffmpeg-player/decoder.ts | 148 + .../core/html5-player/loading/hooks.ts | 7 +- src/renderer/src/page/player/index.tsx | 4 +- 21 files changed, 16102 insertions(+), 37 deletions(-) delete mode 100644 build/entitlements.mac.plist delete mode 100755 build/icon.icns delete mode 100755 build/icon.ico delete mode 100644 build/icon.png create mode 100644 native/binding.gyp create mode 100644 native/decoder.cpp create mode 100644 repomix-output.xml create mode 100644 src/main/initialize/native-addon.ts create mode 100644 src/renderer/src/components/modules/core/ffmpeg-player/decoder.ts diff --git a/.gitignore b/.gitignore index a9472eaf..0298ee8a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ out *.log* .eslintcache .env -*.mas.* \ No newline at end of file +*.mas.* +/native/build \ No newline at end of file diff --git a/build/entitlements.mac.plist b/build/entitlements.mac.plist deleted file mode 100644 index 38c887b2..00000000 --- a/build/entitlements.mac.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.cs.allow-jit - - com.apple.security.cs.allow-unsigned-executable-memory - - com.apple.security.cs.allow-dyld-environment-variables - - - diff --git a/build/icon.icns b/build/icon.icns deleted file mode 100755 index a0765937e16ca8e03240a4a62968b8dac5949eb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125222 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