mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 18:33:33 +00:00
Replaygain support for Web Player (#243)
* replaygain! * resume context * don't fire both players * replaygain for jellyfin * actually remove console.log --------- Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com> Co-authored-by: jeffvli <jeffvictorli@gmail.com>
This commit is contained in:
parent
fd264daffc
commit
65f28bb9dc
10 changed files with 190 additions and 17 deletions
|
|
@ -195,7 +195,7 @@ export const MpvSettings = () => {
|
|||
),
|
||||
description:
|
||||
'Select the output sample rate to be used if the sample frequency selected is different from that of the current media',
|
||||
isHidden: settings.type !== PlaybackType.LOCAL,
|
||||
note: 'Page refresh required for web player',
|
||||
title: 'Sample rate',
|
||||
},
|
||||
{
|
||||
|
|
@ -233,7 +233,6 @@ export const MpvSettings = () => {
|
|||
),
|
||||
description:
|
||||
'Adjust volume gain according to replaygain values stored in the file metadata (--replaygain)',
|
||||
isHidden: settings.type !== PlaybackType.LOCAL,
|
||||
note: 'Restart required',
|
||||
title: 'ReplayGain mode',
|
||||
},
|
||||
|
|
@ -247,7 +246,6 @@ export const MpvSettings = () => {
|
|||
),
|
||||
description:
|
||||
'Pre-amplification gain in dB to apply to the selected replaygain gain (--replaygain-preamp)',
|
||||
isHidden: settings.type !== PlaybackType.LOCAL,
|
||||
title: 'ReplayGain preamp (dB)',
|
||||
},
|
||||
{
|
||||
|
|
@ -261,7 +259,6 @@ export const MpvSettings = () => {
|
|||
),
|
||||
description:
|
||||
'Prevent clipping caused by replaygain by automatically lowering the gain (--replaygain-clip)',
|
||||
isHidden: settings.type !== PlaybackType.LOCAL,
|
||||
title: 'ReplayGain clipping',
|
||||
},
|
||||
{
|
||||
|
|
@ -274,7 +271,6 @@ export const MpvSettings = () => {
|
|||
),
|
||||
description:
|
||||
'Gain in dB to apply if the file has no replay gain tags. This option is always applied if the replaygain logic is somehow inactive. If this is applied, no other replaygain options are applied',
|
||||
isHidden: settings.type !== PlaybackType.LOCAL,
|
||||
title: 'ReplayGain fallback (dB)',
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { lazy, Suspense } from 'react';
|
||||
import { lazy, Suspense, useMemo } from 'react';
|
||||
import { Divider, Stack } from '@mantine/core';
|
||||
import { AudioSettings } from '/@/renderer/features/settings/components/playback/audio-settings';
|
||||
import { ScrobbleSettings } from '/@/renderer/features/settings/components/playback/scrobble-settings';
|
||||
|
|
@ -12,13 +12,20 @@ const MpvSettings = lazy(() =>
|
|||
);
|
||||
|
||||
export const PlaybackTab = () => {
|
||||
const hasFancyAudio = useMemo(() => {
|
||||
return isElectron() || 'AudioContext' in window;
|
||||
}, []);
|
||||
return (
|
||||
<Stack spacing="md">
|
||||
<AudioSettings />
|
||||
<Suspense fallback={<></>}>{isElectron() && <MpvSettings />}</Suspense>
|
||||
<Divider />
|
||||
<ScrobbleSettings />
|
||||
<Suspense fallback={<></>}>{hasFancyAudio && <MpvSettings />}</Suspense>
|
||||
<Divider />
|
||||
{isElectron() && (
|
||||
<>
|
||||
<ScrobbleSettings />
|
||||
<Divider />
|
||||
</>
|
||||
)}
|
||||
<LyricSettings />
|
||||
</Stack>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import isElectron from 'is-electron';
|
||||
import { NumberInput, Slider, Switch, Text } from '/@/renderer/components';
|
||||
import { usePlaybackSettings, useSettingsStoreActions } from '/@/renderer/store/settings.store';
|
||||
import { SettingOption, SettingsSection } from '../settings-section';
|
||||
|
|
@ -27,7 +26,6 @@ export const ScrobbleSettings = () => {
|
|||
/>
|
||||
),
|
||||
description: 'Enable or disable scrobbling to your media server',
|
||||
isHidden: !isElectron(),
|
||||
title: 'Scrobble',
|
||||
},
|
||||
{
|
||||
|
|
@ -54,7 +52,6 @@ export const ScrobbleSettings = () => {
|
|||
),
|
||||
description:
|
||||
'The percentage of the song that must be played before submitting a scrobble',
|
||||
isHidden: !isElectron(),
|
||||
title: 'Minimum scrobble percentage*',
|
||||
},
|
||||
{
|
||||
|
|
@ -81,7 +78,6 @@ export const ScrobbleSettings = () => {
|
|||
),
|
||||
description:
|
||||
'The duration in seconds of a song that must be played before submitting a scrobble',
|
||||
isHidden: !isElectron(),
|
||||
title: 'Minimum scrobble duration (seconds)*',
|
||||
},
|
||||
];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue