Skip to content

tsauchenruei/CrossDevice-Movie-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

電影播放伺服器

一個基於 Flask 和 WebSocket 的電影播放伺服器系統,支援雙網頁架構和跨設備即時控制。

功能特色

  • 🎬 雙網頁架構:播放器頁面(網頁A)+ 控制台頁面(網頁B)
  • 🏠 多房間支援:支援 A-B、C-D 等多組配對,每組獨立運作
  • 🌐 跨設備控制:使用 WebSocket 實現即時同步控制
  • ▶️ 完整播放控制:播放/暫停、快進快退、音量控制、全螢幕
  • 🖼️ 縮圖預覽:支援電影主縮圖和集數縮圖
  • 📚 資料夾式導航:先選電影,再選集數的直觀界面
  • 🔄 自動播放下一集:影片結束時自動播放下一集
  • 🏢 房間管理中心:視覺化管理所有播放會話
  • ⌨️ 鍵盤快捷鍵:提供便捷的鍵盤操作
  • 📱 智能狀態同步:播放狀態即時同步到控制台

系統要求

  • Python 3.7+
  • 現代網頁瀏覽器(支援 HTML5 Video 和 WebSocket)

安裝步驟

  1. 安裝 Python 依賴

    pip install -r requirements.txt
  2. 建立影片目錄結構

    ./data/
    ├── 好看的電影/
    │   ├── 縮圖.jpg          # 電影主縮圖
    │   ├── 第一集.mp4        # 影片檔案
    │   ├── 第一集.jpg        # 集數縮圖
    │   ├── 第二集.mp4
    │   ├── 第二集.jpg
    │   └── ...
    └── 另一部電影/
        └── ...
    
  3. 啟動伺服器

    python app.py
  4. 使用系統

使用方法

🏠 多房間配對使用(推薦)

  1. 打開房間管理中心:訪問 http://localhost:5000/rooms
  2. 創建房間:輸入房間名稱(如:客廳、臥室、會議室A)
  3. 配對設備
    • 在播放設備上點擊「播放器」按鈕
    • 在控制設備上點擊「控制台」按鈕
  4. 開始播放:在控制台選擇要播放的影片
  5. 多組並行:重複步驟創建更多房間實現多組配對

📱 使用場景示例

家庭多房間娛樂

  • 客廳:大電視播放器 ↔ 沙發平板控制台
  • 臥室:投影機播放器 ↔ 床邊手機控制台
  • 書房:電腦播放器 ↔ 桌上設備控制台

辦公室簡報

  • 會議室A:投影機播放器 ↔ 講者筆電控制台
  • 會議室B:電視播放器 ↔ 主持人平板控制台

基本操作

  1. 啟動系統:執行 uv run python app.py
  2. 房間管理:通過房間管理中心創建和管理多個播放會話
  3. 設備配對:播放器和控制台選擇相同房間即可配對
  4. 資料夾式選擇
    • 在控制台先點擊要觀看的電影
    • 進入該電影的集數選擇頁面
    • 點擊想要的集數開始播放
  5. 自動連續播放:開啟自動播放下一集,享受連續觀看體驗
  6. 遠程控制:使用控制台來控制播放器的播放行為

鍵盤快捷鍵

播放器頁面

  • 空白鍵:播放/暫停
  • F:進入全螢幕
  • Esc:退出全螢幕
  • :快退 10 秒
  • :快進 10 秒

控制台頁面

  • 空白鍵:播放/暫停
  • :快退 10 秒
  • :快進 10 秒
  • F:全螢幕
  • Ctrl+R:重新載入影片庫

文件結構

電影播放伺服器/
├── app.py                 # 主程序(支援多房間)
├── requirements.txt       # Python 依賴
├── README.md             # 說明文件
├── templates/            # 網頁模板
│   ├── index.html        # 主頁
│   ├── rooms.html        # 房間管理中心
│   ├── player.html       # 播放器頁面(網頁A)
│   └── control.html      # 控制台頁面(網頁B)
└── data/                 # 影片目錄
    └── 影片名稱/
        ├── 縮圖.jpg
        ├── 集數.mp4
        └── 集數.jpg

影片格式支援

  • 影片格式:MP4(推薦)
  • 縮圖格式:JPG/JPEG
  • 命名規則
    • 電影主縮圖:縮圖.jpg
    • 影片文件:集數名稱.mp4
    • 集數縮圖:集數名稱.jpg(其實也不一定要)

網路配置

  • 預設端口:5000
  • 跨設備使用:將 localhost 改為伺服器的 IP 地址
  • 防火牆:確保端口 5000 可以被訪問

故障排除

常見問題

  1. 影片無法播放

    • 檢查影片格式是否為 MP4
    • 確認文件路徑正確
    • 查看瀏覽器控制台錯誤信息
  2. 縮圖不顯示

    • 確認縮圖文件存在
    • 檢查文件名是否正確(縮圖.jpg
    • 驗證圖片格式是否為 JPG
  3. 跨設備控制不生效

    • 確認所有設備都連接到同一網路
    • 檢查 WebSocket 連接狀態
    • 嘗試重新整理頁面
  4. 載入影片庫失敗

    • 確認 ./data 目錄存在
    • 檢查目錄權限
    • 點擊"重新載入影片庫"按鈕

技術架構

  • 後端:Flask + Flask-SocketIO
  • 前端:HTML5 + CSS3 + JavaScript
  • 即時通訊:WebSocket
  • 影片播放:HTML5 Video API

🛠 開發者

  • 作者: 曹 大寶
  • 開發者留言: 或許未來會更新?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published