diff --git a/README.md b/README.md index e7c7f15..f0e4c67 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ A simple multi-tracks video player with minimal function set to play video files like in video editors. -It's written in PyQt5, and has only been tested under Debian Bookworm. For Windows users, you may need additional codec to make Qt Media Player working. - -It saves track(s) info in YAML, so the playing sequence can be easily edited with text editors (before the GUI is fully Functional). +Written in Python with PyQt5, it's just working: barely no exception handling. And it's only been tested under Debian Bookworm. For Windows users, you may need additional codec to make Qt Media Player working or you will have a empty player window. ## Requirements - Python3 (3.7+) @@ -12,6 +10,16 @@ It saves track(s) info in YAML, so the playing sequence can be easily edited wit - YAML - MediaInfo +## Usage Tips +- Drag & drop (video) file(s) into a track for playing. +- Drop .tracks file to the main window to load saved track(s). The track(s) info are saved in YAML file, so the playing sequence can be edited with text editors (before the GUI is fully Functional). +- Click on the cilp (yes, they are presented as buttons for now), you can set advance or delay the start position of the clip in the timeline. However, for now, the change is cascaded on the following clips if there's any. +- Clip alignment can also be adjusted with a marker: In player window, use Ctrl + mouse click to mark the current position as target position, then you can use Shift + mouse click in (other) player window at the moment you want to align with the previous marked target position. And Alt + mouse click in any player window to clear the marker (set to 0:00:00). +- Up/Down arrow keys can adjust the sound volume of the focused player window (track); Left/Right arrow keys can seek the current playing clip (in a step of 1 second), while this also changes the position of the clip in the timeline, and this function is unreliable. + + ## To Do - Frameless player window. -- Draggable clips. +- Improve the UI, especially for Windows, as it's not displayed as proper as in Debian with scaled 4K desktop. +- Better window management: main window start position, and (auto) arrangement of opened player window(s). +- Draggable clips. \ No newline at end of file diff --git a/tracks.py b/tracks.py index 106dcd4..d5875f6 100644 --- a/tracks.py +++ b/tracks.py @@ -16,8 +16,8 @@ def __init__(self, clip): self.layout.addWidget(QtWidgets.QLabel(f'{clip.name} current starats at {clip.durMsStr(clip.sPos)}({clip.sPos/1000})')) self.direction = QtWidgets.QComboBox(self) - self.direction.addItem('+') - self.direction.addItem('-') + self.direction.addItem('Delay') + self.direction.addItem('Advance') # seconds = floor(clip.sPos / 1000) # minutes = floor(seconds/60) @@ -54,7 +54,7 @@ def __init__(self, clip): def getMS(self) -> int: direction = 1 - if self.direction.currentText() == '-': direction = -1 + if self.direction.currentText() == 'Advance': direction = -1 return ((self.mins.value() * 60 + self.secs.value())*1000 + self.ms.value()) * direction @staticmethod diff --git a/tracksplayer.py b/tracksplayer.py index 1861423..ad6d9a0 100644 --- a/tracksplayer.py +++ b/tracksplayer.py @@ -44,20 +44,25 @@ def createUI(self): self.addTrackBtn = QtWidgets.QPushButton("+", self) self.addTrackBtn.setCheckable(False) self.addTrackBtn.setFixedSize(50, 30) + self.addTrackBtn.setToolTip("Add a new blank track.") + self.saveTracksBtn = QtWidgets.QPushButton("πŸ’ΎοΈŽ", self) self.saveTracksBtn.setCheckable(False) self.saveTracksBtn.setFixedSize(50, 30) + self.saveTracksBtn.setToolTip("Save the track(s) to a file.") self.newTracksBtn = QtWidgets.QPushButton("πŸ—‹", self) self.newTracksBtn.setCheckable(False) self.newTracksBtn.setFixedSize(50, 30) + self.newTracksBtn.setToolTip("Clear all tracks.") self.speedDial = QtWidgets.QDial(self) self.speedDial.setMinimum(0) self.speedDial.setMaximum(2) self.speedDial.setValue(self.tracks.pbSpeedF) self.speedDial.setDisabled(True) + self.speedDial.setToolTip("Playback speed dial (unimplemented.).") self.sttBar= QtWidgets.QStatusBar(self) # self.sttBar.addPermanentWidget(self.progressClock)