Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add speed change step #420

Merged
merged 6 commits into from
May 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions common/app/components/VideoPlayer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -765,14 +765,14 @@ export default function VideoPlayer({
}

if (increase) {
updatePlaybackRate(Math.min(5, video.playbackRate + 0.1), true);
updatePlaybackRate(Math.min(5, video.playbackRate + miscSettings.speedChangeStep), true);
} else {
updatePlaybackRate(Math.max(0.1, video.playbackRate - 0.1), true);
updatePlaybackRate(Math.max(0.1, video.playbackRate - miscSettings.speedChangeStep), true);
}
},
() => false
);
}, [updatePlaybackRate, keyBinder]);
}, [updatePlaybackRate, keyBinder, miscSettings]);

useEffect(() => {
return keyBinder.bindToggleSubtitles(
Expand Down
2 changes: 2 additions & 0 deletions common/app/services/video-channel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -519,6 +519,7 @@ export default class VideoChannel {
themeType,
copyToClipboardOnMine,
autoPausePreference,
speedChangeStep,
fastForwardModePlaybackRate,
keyBindSet,
rememberSubtitleOffset,
Expand All @@ -540,6 +541,7 @@ export default class VideoChannel {
themeType,
copyToClipboardOnMine,
autoPausePreference,
speedChangeStep,
fastForwardModePlaybackRate,
keyBindSet,
rememberSubtitleOffset,
Expand Down
16 changes: 16 additions & 0 deletions common/components/SettingsForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -684,6 +684,7 @@ export default function SettingsForm({
surroundingSubtitlesCountRadius,
surroundingSubtitlesTimeRadius,
autoPausePreference,
speedChangeStep,
fastForwardModePlaybackRate,
keyBindSet,
clickToMineDefaultAction,
Expand Down Expand Up @@ -1969,6 +1970,21 @@ export default function SettingsForm({
/>
</RadioGroup>
</Grid>
<Grid item>
<TextField
type="number"
label={t('settings.speedChangeStep')}
fullWidth
value={speedChangeStep}
color="secondary"
onChange={(event) => handleSettingChanged('speedChangeStep', Number(event.target.value))}
inputProps={{
min: 0.1,
max: 1,
step: 0.1,
}}
/>
</Grid>
<Grid item>
<TextField
type="number"
Expand Down
5 changes: 3 additions & 2 deletions common/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@
"ankiExport": "Aktuellen Untertitel extrahieren und Anki-Dialog öffnen",
"copySubtitle": "Aktuellen Untertitel extrahieren",
"decreaseOffset": "Untertiteloffset -100ms",
"decreasePlaybackRate": "Videogeschwindigkeit -0",
"decreasePlaybackRate": "Decrease playback rate",
"extensionAnkiDialog": "Aktuellen Untertitel extrahieren und Anki-Dialog öffnen. Audiorecorder starten / stoppen",
"extensionCopySubtitle": "Aktuellen Untertitel extrahieren. Audiorecorder starten / stoppen",
"extensionSelectSubtitleTrack": "Untertitelspuren auswählen",
"extensionTakeScreenshot": "Manuellen Screenshot erstellen - dieser überschreibt den automatisierten Screenshot",
"extensionToggleRecording": "Audiorecorder manuell starten / stoppen",
"extensionUpdateLastCard": "Zuletzt erstellte Anki-Karte mit aufgezeichnetem Untertitel",
"increaseOffset": "Untertiteloffset +100ms",
"increasePlaybackRate": "Videogeschwindigkeit +0",
"increasePlaybackRate": "Increase playback rate",
"resetOffset": "Untertiteloffset zurücksetzen",
"seekBackward": "10 Sekunden zurück",
"seekBackwardOrForward": "10 Sekunden vorwärts / zurück",
Expand Down Expand Up @@ -251,6 +251,7 @@
"autoPauseAtSubtitleStart": "Am Anfang des Untertitels",
"autoPausePreference": "Auto-Pause",
"autoPausePreferenceHelperText": "Aktiviert keine Auto-Pause",
"speedChangeStep": "Playback speed adjust step (when using respective shortcuts)",
"fastForwardModePlaybackRate": "Fast-forward Mode Playback Rate",
"copyOnMine": "Extrahierte Untertitel in die Zwischenablage kopieren",
"corsHelperText": "Stelle sicher das {{origin}} in der webCorsOriginList innerhalb der AnkiConnect-Einstellungen steht (Siehe <0>video</0>).",
Expand Down
5 changes: 3 additions & 2 deletions common/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@
"ankiExport": "Mine current subtitle and open Anki dialog",
"copySubtitle": "Mine current subtitle",
"decreaseOffset": "Adjust subtitle offset by -100ms",
"decreasePlaybackRate": "Adjust playback rate by -0.1",
"decreasePlaybackRate": "Decrease playback rate",
"extensionAnkiDialog": "Mine current subtitle and open Anki export dialog. When video is synced without a subtitle file, starts/stops recording audio.",
"extensionCopySubtitle": "Mine current subtitle. When video is synced without a subtitle file, starts/stops recording audio.",
"extensionSelectSubtitleTrack": "Select subtitle tracks to load.",
"extensionTakeScreenshot": "Manually take screenshot, overriding the one that is automatically taken when mining.",
"extensionToggleRecording": "Manually start/stop audio recording, even when a subtitle file is loaded.",
"extensionUpdateLastCard": "Update last-created Anki card with asbplayer-captured media. When video is synced without a subtitle file, starts/stops recording audio.",
"increaseOffset": "Adjust subtitle offset by +100ms",
"increasePlaybackRate": "Adjust playback rate by +0.1",
"increasePlaybackRate": "Increase playback rate",
"resetOffset": "Reset subtitle offset",
"seekBackward": "Seek backward 10 seconds",
"seekBackwardOrForward": "Seek backward/forward 10 seconds",
Expand Down Expand Up @@ -251,6 +251,7 @@
"autoPauseAtSubtitleStart": "At Subtitle Start",
"autoPausePreference": "Auto-pause Preference",
"autoPausePreferenceHelperText": "Does not enable auto-pause. Sets the preference for when to pause when auto-pause is enabled.",
"speedChangeStep": "Playback speed adjust step (when using respective shortcuts)",
"fastForwardModePlaybackRate": "Fast-forward Mode Playback Rate",
"copyOnMine": "Copy mined subtitles to clipboard",
"corsHelperText": "Ensure that {{origin}} is in the webCorsOriginList in your AnkiConnect settings as in this <0>video</0>.",
Expand Down
5 changes: 3 additions & 2 deletions common/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@
"ankiExport": "Minar subtítulo actual y abrir ventana de Anki",
"copySubtitle": "Minar subtítulo actual",
"decreaseOffset": "Ajustar offset de los subtítulos en -100 ms",
"decreasePlaybackRate": "Ajustar velocidad de reproducción en -0.1",
"decreasePlaybackRate": "Decrease playback rate",
"extensionAnkiDialog": "Minar subtítulo actual y abrir ventana de Anki. Cuando el video es sincronizado sin un archivo de subtítulos, comienza/finaliza la grabación de audio.",
"extensionCopySubtitle": "Minar subtítulo actual. Cuando el video es sincronizado sin un archivo de subtítulos, comienza/finaliza la grabación de audio.",
"extensionSelectSubtitleTrack": "Seleccionar pista de subtítulos a cargar",
"extensionTakeScreenshot": "Tomar captura de pantalla manualmente, sobrescribiendo la que es tomada automáticamente",
"extensionToggleRecording": "Comenzar/Finalizar manualmente la grabación de audio, incluso cuando hay una pista de subtítulos cargada",
"extensionUpdateLastCard": "Actualizar la última tarjeta de Anki creada con medios capturados por asbplayer. Cuando el video es sincronizado sin una pista de subtítulos, comienza/finaliza la grabación de audio.",
"increaseOffset": "Ajustar offset de los subtítulos en +100ms",
"increasePlaybackRate": "Ajustar velocidad de reproducción en +0.1",
"increasePlaybackRate": "Increase playback rate",
"resetOffset": "Reestablecer offset de los subtítulos",
"seekBackward": "Retroceder 10 segundos",
"seekBackwardOrForward": "Avanzar/Retroceder 10 segundos",
Expand Down Expand Up @@ -251,6 +251,7 @@
"autoPauseAtSubtitleStart": "Al Inicio del Subtítulo",
"autoPausePreference": "Preferencia para el pausado automático",
"autoPausePreferenceHelperText": "No activa el pausado automático. Establece cuando pausar si el pausado automático está activado.",
"speedChangeStep": "Playback speed adjust step (when using respective shortcuts)",
"fastForwardModePlaybackRate": "Velocidad de la Reproducción Acelerada",
"copyOnMine": "Copiar subtítulos minados al portapapeles",
"corsHelperText": "Asegúrate de que {{origin}} esté en webCorsOriginList en tu configuración de AnkiConnect como en este <0>video</0>.",
Expand Down
5 changes: 3 additions & 2 deletions common/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@
"ankiExport": "現在の字幕をマイニングし、Anki のエクスポートウィンドウを開く",
"copySubtitle": "現在の字幕をマイニング",
"decreaseOffset": "字幕の表示タイミング -100ms",
"decreasePlaybackRate": "再生速度 -0.1",
"decreasePlaybackRate": "Decrease playback rate",
"extensionAnkiDialog": "現在の字幕をマイニングして Anki のエクスポートウィンドウを開く。動画が字幕ファイルなしで同期されている場合、録音を開始/停止する。",
"extensionCopySubtitle": "現在の字幕をマイニングする。動画が字幕ファイルなしで同期されている場合、録音を開始/停止する。",
"extensionSelectSubtitleTrack": "ロードする字幕ファイルを選択する。",
"extensionTakeScreenshot": "手動でスクリーンショットを撮影しマイニング時に自動的に撮影されたものを上書きする。",
"extensionToggleRecording": "字幕ファイルがロードされていても手動で録音を開始/終了する。",
"extensionUpdateLastCard": "最後に作成した Anki カードに asbplayer でキャプチャしたメディアを添付して更新する。動画が字幕ファイルなしで同期されている場合、録音を開始/停止する。",
"increaseOffset": "字幕の表示タイミング +100ms",
"increasePlaybackRate": "再生速度 +0.1",
"increasePlaybackRate": "Increase playback rate",
"resetOffset": "字幕の表示タイミングをリセット",
"seekBackward": "10 秒巻き戻し",
"seekBackwardOrForward": "10 秒巻き戻し/早送り",
Expand Down Expand Up @@ -251,6 +251,7 @@
"autoPauseAtSubtitleStart": "字幕の開始時",
"autoPausePreference": "自動一時停止の設定",
"autoPausePreferenceHelperText": "自動一時停止を有効化する項目ではなく、自動一時停止がオンになっている時に一時停止するタイミングを設定する。",
"speedChangeStep": "Playback speed adjust step (when using respective shortcuts)",
"fastForwardModePlaybackRate": "早送りモードの再生速度",
"copyOnMine": "マイニングした字幕をクリップボードにコピー",
"corsHelperText": "<0>この動画</0>を参考に、{{origin}} が AnkiConnect 設定の webCorsOriginList に入っていることを確認してください。",
Expand Down
5 changes: 3 additions & 2 deletions common/locales/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@
"ankiExport": "Wykop bieżące napisy i otwórz okno dialogowe Anki",
"copySubtitle": "Wykop bieżące napisy",
"decreaseOffset": "Przestaw przesunięcie napisów o -100ms",
"decreasePlaybackRate": "Przestaw prędkość odtwarzania o -0.1",
"decreasePlaybackRate": "Decrease playback rate",
"extensionAnkiDialog": "Wykop bieżące napisy i otwórz okno dialogowe eksportu Anki. Jeśli wideo jest zsynchronizowane bez pliku z napisami",
"extensionCopySubtitle": "Wykop bieżące napisy. Jeśli wideo jest zsynchronizowane bez pliku z napisami",
"extensionSelectSubtitleTrack": "Wybierz ścieżkę napisów do załadowania.",
"extensionTakeScreenshot": "Manualnie wykonaj zrzut ekranu",
"extensionToggleRecording": "Manualne rozpocznij/zatrzymaj nagrywanie audio",
"extensionUpdateLastCard": "Zaktualizuj ostatnio utworzoną kartę Anki o media przechwycone przez asbplayer. Jeśli wideo jest zsynchronizowane bez pliku z napisami",
"increaseOffset": "Przestaw przesunięcie napisów o +100ms",
"increasePlaybackRate": "Przestaw prędkość odtwarzania o +0.1",
"increasePlaybackRate": "Increase playback rate",
"resetOffset": "Wyzeruj przesunięcie napisów",
"seekBackward": "Przeskocz o 10 sekund do tył",
"seekBackwardOrForward": "Przeskocz o 10 sekund w tył/przód",
Expand Down Expand Up @@ -251,6 +251,7 @@
"autoPauseAtSubtitleStart": "Na początku napisu",
"autoPausePreference": "Preferencja automatycznej pauzy",
"autoPausePreferenceHelperText": "Nie włącza automatycznej pauzy. Ustawia preferencję kiedy się zatrzymać gdy automatyczna pauza jest włączona.",
"speedChangeStep": "Playback speed adjust step (when using respective shortcuts)",
"fastForwardModePlaybackRate": "Fast-forward Mode Playback Rate",
"copyOnMine": "Skopiuj wykopane napisy do schowka",
"corsHelperText": "Upewnij się że {{origin}} jest w liście webCorsOriginList w twoich ustawieniach AnkiConnect tak",
Expand Down
5 changes: 3 additions & 2 deletions common/locales/pt_BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@
"ankiExport": "Minera a legenda atual e abre a caixa de diálogo do Anki",
"copySubtitle": "Minera a legenda atual",
"decreaseOffset": "Ajusta o atraso da legenda em -100ms",
"decreasePlaybackRate": "Ajusta a taxa de reprodução em -0.1",
"decreasePlaybackRate": "Diminuir a velocidade de reprodução",
"extensionAnkiDialog": "Minera a legenda atual e abre a caixa de diálogo 'Exportar para o Anki'. Quando o vídeo está sincronizado sem um arquivo de legenda, inicia/para a gravação de áudio.",
"extensionCopySubtitle": "Minera a legenda atual. Quando o vídeo está sincronizado sem um arquivo de legenda, inicia/para a gravação de áudio.",
"extensionSelectSubtitleTrack": "Seleciona faixas de legendas para carregar.",
"extensionTakeScreenshot": "Tira uma captura de tela manualmente, substituindo a que é tirada automaticamente ao minerar.",
"extensionToggleRecording": "Inicia/para a gravação de áudio manualmente, mesmo quando um arquivo de legenda está carregado.",
"extensionUpdateLastCard": "Atualiza o último card do Anki criado com a mídia capturada pelo asbplayer. Quando o vídeo é sincronizado sem um arquivo de legenda, inicia/para a gravação de áudio.",
"increaseOffset": "Ajusta atraso da legenda em +100ms",
"increasePlaybackRate": "Ajusta taxa de reprodução em +0.1",
"increasePlaybackRate": "Aumentar a velocidade de reprodução",
"resetOffset": "Reseta o atraso da legenda",
"seekBackward": "Retrocede 10 segundos",
"seekBackwardOrForward": "Retroceda/avança 10 segundos",
Expand Down Expand Up @@ -251,6 +251,7 @@
"autoPauseAtSubtitleStart": "No início da legenda",
"autoPausePreference": "Preferência de pausa automática",
"autoPausePreferenceHelperText": "Não habilita a pausa automática. Define a preferência de quando pausar quando a pausa automática estiver habilitada.",
"speedChangeStep": "Passo de ajuste da velocidade de reprodução (ao utilizar os respectivos atalhos)",
"fastForwardModePlaybackRate": "Taxa de reprodução no modo de avanço rápido",
"copyOnMine": "Copiar legenda minerada para a área de transferência",
"corsHelperText": "Certifique-se de que {{origin}} esteja na webCorsOriginList em suas configurações do AnkiConnect, como neste <0>vídeo</0>.",
Expand Down
5 changes: 3 additions & 2 deletions common/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@
"ankiExport": "Майнить текущий субтитр и открыть диалоговое окно Анки",
"copySubtitle": "Майнить текущий субтитр",
"decreaseOffset": "Уменьшить задержку субтитра на 100 мс",
"decreasePlaybackRate": "Уменьшить скорость воспроизведения на 0.1",
"decreasePlaybackRate": "Уменьшить скорость воспроизведения",
"extensionAnkiDialog": "Майнить текущий субтитр и открыть диалоговое окно 'Экспорт в Анки'. Когда видео синхронизировано без файла субтитров, начать/остановить запись аудио.",
"extensionCopySubtitle": "Майнить текущий субтитр. Когда видео синхронизировано без файла субтитров, начать/остановить запись аудио.",
"extensionSelectSubtitleTrack": "Выбрать дорожки субтитров для загрузки.",
"extensionTakeScreenshot": "Сделать скриншот вручную, заменяя автоматически созданный при майнинге.",
"extensionToggleRecording": "Вручную начать/остановить запись аудио, даже когда загружен файл субтитров.",
"extensionUpdateLastCard": "Обновить последнюю карточку Анки, созданную с помощью asbplayer, с захваченными медиа. Когда видео синхронизировано без файла субтитров, начать/остановить запись аудио.",
"increaseOffset": "Увеличить задержку субтитра на 100 мс",
"increasePlaybackRate": "Увеличить скорость воспроизведения на 0.1",
"increasePlaybackRate": "Увеличить скорость воспроизведения",
"resetOffset": "Сбросить задержку субтитра",
"seekBackward": "Перемотать назад на 10 секунд",
"seekBackwardOrForward": "Перемотать назад/вперед на 10 секунд",
Expand Down Expand Up @@ -251,6 +251,7 @@
"autoPauseAtSubtitleStart": "В начале субтитра",
"autoPausePreference": "Настройки автоматической паузы",
"autoPausePreferenceHelperText": "Не включает автоматическую паузу. Определяет предпочтения паузы, когда автоматическая пауза включена.",
"speedChangeStep": "Шаг регулировки скорости воспроизведения (при использовании соответствующих горячих клавиш)",
"fastForwardModePlaybackRate": "Скорость воспроизведения в режиме быстрого воспроизведения",
"copyOnMine": "Копировать смайненные субтитры в буфер обмена",
"corsHelperText": "Убедитесь, что {{origin}} находится в списке webCorsOriginList в настройках AnkiConnect, как в этом <0>видео</0>.",
Expand Down