Browse Source

svideo changes

master
marcoschmickler 1 week ago
parent
commit
fbe53676f3
  1. 146
      kplayer/video/SVideoHelpView.swift
  2. 90
      kplayer/video/svideohelp.md

146
kplayer/video/SVideoHelpView.swift

@ -0,0 +1,146 @@
//
// Created by Marco Schmickler
// Copyright (c) 2024 Marco Schmickler. All rights reserved.
//
import SwiftUI
struct SVideoHelpView: View {
var completionHandler: () -> Void
var body: some View {
NavigationView {
ScrollView {
if let text = helpAttributedString() {
Text(text)
.padding()
.frame(maxWidth: .infinity, alignment: .leading)
} else {
Text(helpMarkdown)
.padding()
.frame(maxWidth: .infinity, alignment: .leading)
}
}
.navigationTitle("Video Help")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button("Done", action: completionHandler)
}
}
}
}
private func helpAttributedString() -> AttributedString? {
try? AttributedString(markdown: helpMarkdown,
options: .init(interpretedSyntax: .inlineOnlyPreservingWhitespace))
}
private let helpMarkdown = """
# KPlayer Video Help
## Gestures
**Double tap** Toggle fullscreen: hides all controls and overlays
**Triple tap** Take snapshot; exits fullscreen if active
**Long press** Pause / resume
**Pinch** Zoom in or out (always active)
### Drag while playing
**Swipe right/left** Seek ±30 s; ±10 s in fullscreen; ±5 s / ±8 s in slow or zoom mode
**Swipe down/up** Next / previous item (requires *jump* mode; disabled in fullscreen)
**Drag lower area** Pan (in zoom, small, or fullscreen mode)
### Drag while paused
**Upper zone** Fine scrub (high precision)
**Lower zone** Coarse scrub; or pan when zoomed / small / fullscreen
---
## Toolbar Buttons
**next / cancel** Close player; saves in edit mode
**[time]** Position relative to clip start. Tap to open/close the More panel
**[tag]** Apply the current tag (yellow = applied)
**** Toggle favourite
**loop5** Loop a 5-second window from the current position
**cfg** Open settings
**save** Export clip to folder 1, 2, or 3
**embd** Show/hide embedded side-by-side video overlay
**?** This help screen
---
## More Panel
Tap the time button to open or close.
**tilt** Gyroscope-controlled horizontal pan
**slow** Half speed; also shrinks seek jumps to ±5 s / ±8 s
**zoom** Auto-pan and zoom using saved keyframes
**jump** Vertical swipe skips to next / previous item (disabled in fullscreen)
**small** Crop-preview overlay; unlocks pan in lower drag zone
**loop** Loop within clip start/end markers
**flip** Rotate video 180°
**lores** Secondary zoom/offset for low-resolution sources
**[speed]** Cycle speed: 0.25× 0.5× 1× 2×
**pause** Pause / resume
**black** Mark item deleted and close (requires confirmation)
**trunc** Truncate at current position (requires confirmation)
**cut** Cut / trim operation
**start** Tap: seek to clip start. Long press: set clip start here
**end** Tap: seek to clip end. Long press: set clip end here
---
## Fullscreen Mode
Double tap enters fullscreen: toolbar and controls are hidden. Zoom and pan remain active. Double tap again or triple tap (which also takes a snapshot) to exit.
Jump mode is disabled in fullscreen vertical swipes do not skip items.
---
## Edit Mode
Enable via cfg Edit.
**frame** Save current zoom/pan as a keyframe
**snap** Screenshot to clipboard
**start** (long press) Set clip start to current position
**end** (long press) Set clip end to current position
"""
}

90
kplayer/video/svideohelp.md

@ -0,0 +1,90 @@
# KPlayer Video Help
## Gestures
| Gesture | Action |
|---|---|
| **Double tap** | Toggle fullscreen — hides all controls and overlays |
| **Triple tap** | Take snapshot; exits fullscreen if active |
| **Long press** | Pause / resume |
| **Pinch** | Zoom in or out (always active) |
### Drag — while **playing**
| Gesture | Action |
|---|---|
| Swipe right | Seek forward 30 s; 10 s in fullscreen; 5 s in slow/zoom mode |
| Swipe left | Seek back 30 s; 10 s in fullscreen; 8 s in slow/zoom mode |
| Swipe down | Next item in list (requires **jump** mode; disabled in fullscreen) |
| Swipe up | Previous item in list (requires **jump** mode; disabled in fullscreen) |
| Drag from lower area | Pan (requires zoom, small, or fullscreen mode) |
### Drag — while **paused**
| Start position | Action |
|---|---|
| Upper zone | Fine scrub (high precision, ÷100) |
| Lower zone | Coarse scrub (faster, ÷30) |
| Lower zone in zoom/small/fullscreen | Pan |
---
## Toolbar Buttons
| Button | Action |
|---|---|
| **next** / **cancel** | Close player. In edit mode saves changes; long name shows confirm dialog |
| **[time]** | Time relative to clip start. Tap to toggle the **More** panel |
| **[tag]** | Apply the current tag to this item (turns yellow when applied) |
| **♥** | Toggle favourite |
| **loop5** | Loop a 5-second window from the current position |
| **cfg** | Open settings |
| **save** | Export clip to folder 1, 2, or 3 |
| **embd** | Show/hide embedded side-by-side video overlay |
| **?** | This help screen |
---
## More Panel
Tap the time button to open. Tap again to close.
| Button | Action |
|---|---|
| **tilt** | Gyroscope-controlled horizontal pan |
| **slow** | Halve playback speed; also reduces seek jumps to ±5 s / 8 s |
| **zoom** | Auto-pan and zoom based on saved keyframes |
| **jump** | Enable vertical swipe to skip to next/previous item |
| **small** | Crop-preview overlay; enables pan in the lower drag zone |
| **loop** | Loop within the clip's start/end markers |
| **flip** | Rotate video 180° |
| **lores** | Apply secondary zoom/offset for low-resolution sources |
| **[speed]** | Cycle playback speed: 0.25× → 0.5× → 1× → 2× |
| **pause** | Pause / resume |
| **black** | Mark item as deleted and close (confirmation required) |
| **trunc** | Truncate item at current position (confirmation required) |
| **cut** | Cut/trim operation |
| **start** | Tap: seek to clip start. Long press: set clip start here |
| **end** | Tap: seek to clip end. Long press: set clip end here |
---
## Fullscreen Mode
**Double tap** enters fullscreen: toolbar, controls, and all overlays are hidden. Zoom and pan remain fully active. **Double tap again** or **triple tap** (which also takes a snapshot) exits fullscreen.
> **Note:** jump mode is disabled in fullscreen — vertical swipes do not skip items.
---
## Edit Mode
Enable via **cfg → Edit**. Adds clip trimming controls:
| Button | Action |
|---|---|
| **edit** | Toggle the trim editor overlay |
| **frame** | Save the current zoom/pan position as a keyframe |
| **snap** | Take a screenshot and copy it to the clipboard |
| **start** (long press) | Set clip start to current playback position |
| **end** (long press) | Set clip end to current playback position |
Loading…
Cancel
Save