video: skip 10s action

This commit is contained in:
Thibault Deckers 2021-06-25 10:46:46 +09:00
parent caedb78f4f
commit 48d90e071f
6 changed files with 17 additions and 1 deletions

View file

@ -101,6 +101,8 @@
"@videoActionPlay": {}, "@videoActionPlay": {},
"videoActionReplay10": "Seek backward 10 seconds", "videoActionReplay10": "Seek backward 10 seconds",
"@videoActionReplay10": {}, "@videoActionReplay10": {},
"videoActionSkip10": "Seek forward 10 seconds",
"@videoActionSkip10": {},
"videoActionSelectStreams": "Select tracks", "videoActionSelectStreams": "Select tracks",
"@videoActionSelectStreams": {}, "@videoActionSelectStreams": {},
"videoActionSetSpeed": "Playback speed", "videoActionSetSpeed": "Playback speed",

View file

@ -51,6 +51,7 @@
"videoActionPause": "일시정지", "videoActionPause": "일시정지",
"videoActionPlay": "재생", "videoActionPlay": "재생",
"videoActionReplay10": "10초 뒤로 탐색", "videoActionReplay10": "10초 뒤로 탐색",
"videoActionSkip10": "10초 앞으로 탐색",
"videoActionSelectStreams": "트랙 선택", "videoActionSelectStreams": "트랙 선택",
"videoActionSetSpeed": "재생 배속", "videoActionSetSpeed": "재생 배속",

View file

@ -5,6 +5,7 @@ import 'package:flutter/widgets.dart';
enum VideoAction { enum VideoAction {
captureFrame, captureFrame,
replay10, replay10,
skip10,
selectStreams, selectStreams,
setSpeed, setSpeed,
togglePlay, togglePlay,
@ -13,11 +14,12 @@ enum VideoAction {
class VideoActions { class VideoActions {
static const all = [ static const all = [
VideoAction.replay10,
VideoAction.togglePlay, VideoAction.togglePlay,
VideoAction.captureFrame, VideoAction.captureFrame,
VideoAction.setSpeed, VideoAction.setSpeed,
VideoAction.selectStreams, VideoAction.selectStreams,
VideoAction.replay10,
VideoAction.skip10,
]; ];
} }
@ -28,6 +30,8 @@ extension ExtraVideoAction on VideoAction {
return context.l10n.videoActionCaptureFrame; return context.l10n.videoActionCaptureFrame;
case VideoAction.replay10: case VideoAction.replay10:
return context.l10n.videoActionReplay10; return context.l10n.videoActionReplay10;
case VideoAction.skip10:
return context.l10n.videoActionSkip10;
case VideoAction.selectStreams: case VideoAction.selectStreams:
return context.l10n.videoActionSelectStreams; return context.l10n.videoActionSelectStreams;
case VideoAction.setSpeed: case VideoAction.setSpeed:
@ -44,6 +48,8 @@ extension ExtraVideoAction on VideoAction {
return AIcons.captureFrame; return AIcons.captureFrame;
case VideoAction.replay10: case VideoAction.replay10:
return AIcons.replay10; return AIcons.replay10;
case VideoAction.skip10:
return AIcons.skip10;
case VideoAction.selectStreams: case VideoAction.selectStreams:
return AIcons.streams; return AIcons.streams;
case VideoAction.setSpeed: case VideoAction.setSpeed:

View file

@ -34,6 +34,7 @@ class AIcons {
// actions // actions
static const IconData addShortcut = Icons.add_to_home_screen_outlined; static const IconData addShortcut = Icons.add_to_home_screen_outlined;
static const IconData replay10 = Icons.replay_10_outlined; static const IconData replay10 = Icons.replay_10_outlined;
static const IconData skip10 = Icons.forward_10_outlined;
static const IconData captureFrame = Icons.screenshot_outlined; static const IconData captureFrame = Icons.screenshot_outlined;
static const IconData clear = Icons.clear_outlined; static const IconData clear = Icons.clear_outlined;
static const IconData createAlbum = Icons.add_circle_outline; static const IconData createAlbum = Icons.add_circle_outline;

View file

@ -268,6 +268,7 @@ class _ButtonRow extends StatelessWidget {
); );
break; break;
case VideoAction.replay10: case VideoAction.replay10:
case VideoAction.skip10:
child = IconButton( child = IconButton(
icon: Icon(action.getIcon()), icon: Icon(action.getIcon()),
onPressed: onPressed, onPressed: onPressed,
@ -297,6 +298,7 @@ class _ButtonRow extends StatelessWidget {
enabled = controller?.canSetSpeedNotifier.value ?? false; enabled = controller?.canSetSpeedNotifier.value ?? false;
break; break;
case VideoAction.replay10: case VideoAction.replay10:
case VideoAction.skip10:
case VideoAction.togglePlay: case VideoAction.togglePlay:
enabled = true; enabled = true;
break; break;
@ -312,6 +314,7 @@ class _ButtonRow extends StatelessWidget {
break; break;
case VideoAction.captureFrame: case VideoAction.captureFrame:
case VideoAction.replay10: case VideoAction.replay10:
case VideoAction.skip10:
case VideoAction.selectStreams: case VideoAction.selectStreams:
case VideoAction.setSpeed: case VideoAction.setSpeed:
child = MenuRow(text: action.getText(context), icon: action.getIcon()); child = MenuRow(text: action.getText(context), icon: action.getIcon());

View file

@ -35,6 +35,9 @@ class VideoActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAwareMix
case VideoAction.replay10: case VideoAction.replay10:
if (controller.isReady) controller.seekTo(controller.currentPosition - 10000); if (controller.isReady) controller.seekTo(controller.currentPosition - 10000);
break; break;
case VideoAction.skip10:
if (controller.isReady) controller.seekTo(controller.currentPosition + 10000);
break;
case VideoAction.selectStreams: case VideoAction.selectStreams:
_showStreamSelectionDialog(context, controller); _showStreamSelectionDialog(context, controller);
break; break;