diff --git a/web/src/components/DialogTorrentDetailsContent/Table/index.jsx b/web/src/components/DialogTorrentDetailsContent/Table/index.jsx
index 688206884..3afc09375 100644
--- a/web/src/components/DialogTorrentDetailsContent/Table/index.jsx
+++ b/web/src/components/DialogTorrentDetailsContent/Table/index.jsx
@@ -20,6 +20,16 @@ const Table = memo(
({ playableFileList, viewedFileList, selectedSeason, seasonAmount, hash }) => {
const { t } = useTranslation()
const [isSupported, setIsSupported] = useState(true)
+ const playerPref = localStorage.getItem('preferredPlayer') ?? 'vlc'
+ const getPlayerProtocol = pref => {
+ const map = {
+ vlc: 'vlc://',
+ potplayer: 'potplayer://',
+ }
+ if (!pref) return 'vlc://'
+ return map[pref] || `${pref}://`
+ }
+ const isPlayerUsed = JSON.parse(localStorage.getItem('isPlayerUsed')) ?? JSON.parse(localStorage.getItem('isVlcUsed')) ?? false
const preloadBuffer = fileId => fetch(`${streamHost()}?link=${hash}&index=${fileId}&preload`)
const getFileLink = (path, id) =>
`${streamHost()}/${encodeURIComponent(path.split('\\').pop().split('/').pop())}?link=${hash}&index=${id}&play`
@@ -85,12 +95,19 @@ const Table = memo(
)}
- {isVlcUsed && (
-
-
-
+ {isPlayerUsed && (
+
)}
{isMac && isIinaUsed && (
@@ -189,12 +206,19 @@ const Table = memo(
)}
- {isVlcUsed && (
-
-
-
+ {isPlayerUsed && (
+
)}
{isMac && isIinaUsed && (
@@ -224,6 +248,8 @@ const Table = memo(
)
})}
+
+
>
)
},
diff --git a/web/src/components/Settings/MobileAppSettings.jsx b/web/src/components/Settings/MobileAppSettings.jsx
index e5762c2ca..1351de5a9 100644
--- a/web/src/components/Settings/MobileAppSettings.jsx
+++ b/web/src/components/Settings/MobileAppSettings.jsx
@@ -1,4 +1,4 @@
-import { FormControlLabel, FormGroup, FormHelperText, Switch } from '@material-ui/core'
+import { FormControlLabel, FormGroup, FormHelperText, Switch, FormControl, InputLabel, Select, MenuItem } from '@material-ui/core'
import { isMacOS, isAppleDevice } from 'utils/Utils'
import { useTranslation } from 'react-i18next'
@@ -11,6 +11,10 @@ export default function MobileAppSettings({
setIsInfuseUsed,
isIinaUsed,
setIsIinaUsed,
+ isPlayerUsed,
+ setIsPlayerUsed,
+ preferredPlayer,
+ setPreferredPlayer,
}) {
const { t } = useTranslation()
const isMac = isMacOS()
@@ -21,11 +25,28 @@ export default function MobileAppSettings({
{t('SettingsDialog.MobileAppSettings')}
setIsVlcUsed(prev => !prev)} color='secondary' />}
+ control={ setIsPlayerUsed(prev => !prev)} color='secondary' />}
label={t('SettingsDialog.UseVLC')}
labelPlacement='start'
/>
{t('SettingsDialog.UseVLCHint')}
+
+
+ {t('SettingsDialog.PreferredPlayer')}
+
+ {t('SettingsDialog.PreferredPlayerHint')}
+
{isApple && (
<>
{
axios.post(settingsHost(), { action: 'get' }).then(({ data }) => {
@@ -58,6 +62,8 @@ export default function SettingsDialog({ handleClose }) {
localStorage.setItem('isVlcUsed', isVlcUsed)
localStorage.setItem('isInfuseUsed', isInfuseUsed)
localStorage.setItem('isIinaUsed', isIinaUsed)
+ localStorage.setItem('isPlayerUsed', isPlayerUsed)
+ localStorage.setItem('preferredPlayer', preferredPlayer)
}
const inputForm = ({ target: { type, value, checked, id } }) => {
@@ -189,6 +195,10 @@ export default function SettingsDialog({ handleClose }) {
setIsInfuseUsed={setIsInfuseUsed}
isIinaUsed={isIinaUsed}
setIsIinaUsed={setIsIinaUsed}
+ isPlayerUsed={isPlayerUsed}
+ setIsPlayerUsed={setIsPlayerUsed}
+ preferredPlayer={preferredPlayer}
+ setPreferredPlayer={setPreferredPlayer}
/>
diff --git a/web/src/locales/bg/translation.json b/web/src/locales/bg/translation.json
index 3dca989a3..3b3a9aff9 100644
--- a/web/src/locales/bg/translation.json
+++ b/web/src/locales/bg/translation.json
@@ -198,8 +198,10 @@
"UseDiskDesc": "По-добре използвайте RAM или външна памет на флаш-базирани устройства",
"UseInfuse": "Подкана за отваряне на видео в Infuse",
"UseInfuseHint": "Добави бутон към Infuse плеъра за списъка с торенти",
- "UseVLC": "Подкана за отваряне на видео във VLC",
- "UseVLCHint": "Добави бутон към VLC плеъра за списъка с торенти",
+ "UseVLC": "Подкана за отваряне на видео в плеър",
+ "UseVLCHint": "Добави бутон за външен плеър в списъка с торент съдържание",
+ "PreferredPlayer": "Предпочитан плеър",
+ "PreferredPlayerHint": "Изберете протокол на плеъра за външно възпроизвеждане (VLC или PotPlayer)",
"UseIINA": "Подкана за отваряне на видео в IINA",
"UseIINAHint": "Добави бутон към IINA плеъра за списъка с торенти (само macOS)",
"ViewedHistoryStorage": "Съхранение на историята на прегледите:",
diff --git a/web/src/locales/en/translation.json b/web/src/locales/en/translation.json
index 7f01dd07b..d9f82e85d 100644
--- a/web/src/locales/en/translation.json
+++ b/web/src/locales/en/translation.json
@@ -198,8 +198,10 @@
"UseDiskDesc": "Better use RAM or external storage on flash-based devices",
"UseInfuse": "Prompt to open video in Infuse",
"UseInfuseHint": "Add Infuse player button to torrent content list",
- "UseVLC": "Prompt to open video in VLC",
- "UseVLCHint": "Add VLC player button to torrent content list",
+ "UseVLC": "Prompt to open video in player",
+ "UseVLCHint": "Add external player button to torrent content list",
+ "PreferredPlayer": "Preferred player",
+ "PreferredPlayerHint": "Choose player protocol for external player",
"UseIINA": "Prompt to open video in IINA",
"UseIINAHint": "Add IINA player button to torrent content list (macOS only)",
"ViewedHistoryStorage": "Viewed History Storage:",
diff --git a/web/src/locales/fr/translation.json b/web/src/locales/fr/translation.json
index 6e9372a2b..1913111a9 100644
--- a/web/src/locales/fr/translation.json
+++ b/web/src/locales/fr/translation.json
@@ -198,8 +198,10 @@
"UseDiskDesc": "Mieux vaut utiliser la RAM ou un stockage externe sur les appareils à base de flash",
"UseInfuse": "Demander d'ouvrir la vidéo dans Infuse",
"UseInfuseHint": "Ajouter un bouton de lecteur Infuse à la liste de contenu du torrent",
- "UseVLC": "Demander d'ouvrir la vidéo dans VLC",
- "UseVLCHint": "Ajouter un bouton de lecteur VLC à la liste de contenu du torrent",
+ "UseVLC": "Proposer d'ouvrir la vidéo dans le lecteur",
+ "UseVLCHint": "Ajouter un bouton pour lecteur externe à la liste du contenu du torrent",
+ "PreferredPlayer": "Lecteur préféré",
+ "PreferredPlayerHint": "Choisissez le protocole du lecteur pour l'ouverture externe (VLC ou PotPlayer)",
"UseIINA": "Demander d'ouvrir la vidéo dans IINA",
"UseIINAHint": "Ajouter un bouton de lecteur IINA à la liste de contenu du torrent (macOS uniquement)",
"ViewedHistoryStorage": "Stockage de l'historique des vues :",
diff --git a/web/src/locales/ro/translation.json b/web/src/locales/ro/translation.json
index 7f9202de5..f8bf91a96 100644
--- a/web/src/locales/ro/translation.json
+++ b/web/src/locales/ro/translation.json
@@ -198,8 +198,10 @@
"UseDiskDesc": "Utilizați mai bine memoria RAM sau spațiul de stocare extern pe dispozitivele bazate pe flash.",
"UseInfuse": "Solicitare pentru deschiderea videoclipului în Infuse",
"UseInfuseHint": "Adăugați butonul Infuse player la lista de conținut torrent",
- "UseVLC": "Solicitare pentru deschiderea videoclipului în VLC",
- "UseVLCHint": "Adăugați butonul VLC player la lista de conținut torrent",
+ "UseVLC": "Solicitare pentru deschiderea videoclipului în player",
+ "UseVLCHint": "Adăugați buton pentru player extern în lista de conținut torrent",
+ "PreferredPlayer": "Player preferat",
+ "PreferredPlayerHint": "Alegeți protocolul playerului pentru redare externă (VLC sau PotPlayer)",
"UseIINA": "Solicitare pentru deschiderea videoclipului în IINA",
"UseIINAHint": "Adăugați butonul IINA player la lista de conținut torrent (doar macOS)",
"ViewedHistoryStorage": "Istoricul vizualizărilor stocate:",
diff --git a/web/src/locales/ru/translation.json b/web/src/locales/ru/translation.json
index 93e2f3cdd..278bad35a 100644
--- a/web/src/locales/ru/translation.json
+++ b/web/src/locales/ru/translation.json
@@ -198,8 +198,10 @@
"UseDiskDesc": "Рекомендуется использовать оперативную память или внешние носители на устройствах с flash-памятью",
"UseInfuse": "Предлагать открыть видео в Infuse",
"UseInfuseHint": "Добавить кнопку проигрывателя Infuse в список торрент-контента",
- "UseVLC": "Предлагать открыть видео в VLC",
- "UseVLCHint": "Добавить кнопку проигрывателя VLC в список торрент-контента",
+ "UseVLC": "Предлагать открыть видео в плеере",
+ "UseVLCHint": "Добавить кнопку внешнего плеера в список торрент-контента",
+ "PreferredPlayer": "Предпочитаемый плеер",
+ "PreferredPlayerHint": "Выберите протокол плеера для внешнего воспроизведения (VLC или PotPlayer)",
"UseIINA": "Предлагать открыть видео в IINA",
"UseIINAHint": "Добавить кнопку проигрывателя IINA в список торрент-контента (только macOS)",
"ViewedHistoryStorage": "Хранилище истории просмотров:",
diff --git a/web/src/locales/ua/translation.json b/web/src/locales/ua/translation.json
index 2cb03e84c..3b6d58570 100644
--- a/web/src/locales/ua/translation.json
+++ b/web/src/locales/ua/translation.json
@@ -198,8 +198,10 @@
"UseDiskDesc": "Краще використовуйте оперативну пам'ять або зовнішню пам'ять на пристроях на основі flash-пам'яттю",
"UseInfuse": "Пропонувати відкрити відео в Infuse",
"UseInfuseHint": "Додати кнопку програвача Infuse до списку торрент-контенту",
- "UseVLC": "Пропонувати відкрити відео у VLC",
+ "UseVLC": "Пропонувати відкрити відео у плеєрі",
"UseVLCHint": "Додати кнопку програвача VLC до списку торрент-контенту",
+ "PreferredPlayer": "Переважний плеєр",
+ "PreferredPlayerHint": "Виберіть протокол плеєра для зовнішнього відтворення (VLC або PotPlayer)",
"UseIINA": "Пропонувати відкрити відео в IINA",
"UseIINAHint": "Додати кнопку програвача IINA до списку торрент-контенту (тільки macOS)",
"ViewedHistoryStorage": "Збереження історії переглядів:",
diff --git a/web/src/locales/zh/translation.json b/web/src/locales/zh/translation.json
index e0c00d13c..22d33dffd 100644
--- a/web/src/locales/zh/translation.json
+++ b/web/src/locales/zh/translation.json
@@ -198,8 +198,10 @@
"UseDiskDesc": "最好使用内存或固态存储作为缓存",
"UseInfuse": "提示在 Infuse 中打开视频",
"UseInfuseHint": "将 Infuse 播放器按钮添加到种子内容列表",
- "UseVLC": "提示在VLC中打开视频",
- "UseVLCHint": "将VLC播放器按钮添加到种子内容列表",
+ "UseVLC": "提示在播放器中打开视频",
+ "UseVLCHint": "将外部播放器按钮添加到种子内容列表",
+ "PreferredPlayer": "首选播放器",
+ "PreferredPlayerHint": "为外部播放器选择协议(VLC 或 PotPlayer)",
"UseIINA": "提示在 IINA 中打开视频",
"UseIINAHint": "将 IINA 播放器按钮添加到种子内容列表(仅 macOS)",
"ViewedHistoryStorage": "查看历史存储:",