Skip to content

Commit

Permalink
fix: fixed the issue when switching audio during pause causes audio n…
Browse files Browse the repository at this point in the history
…ot playing (#89)

Co-authored-by: Hanxiong Shi <[email protected]>
  • Loading branch information
shihanxiong and Hanxiong Shi authored Apr 23, 2023
1 parent fd5d19d commit ccfca1a
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 16 deletions.
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

- adjusted segment modal size
- ffmpeg now uses GPU acceleration instead of CPU
- fixed an issue when video is paused, switching audio track does not play the audio preview

### v1.6.0

Expand Down
Binary file modified src/dist/win32_video_loom_1_6_1.exe
Binary file not shown.
42 changes: 26 additions & 16 deletions src/video_renderer_frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,25 @@ def refresh(self):
for i in range(len(self.master.video_list)):
videoplayer = TkinterVideo(self, scaled=True, keep_aspect=True)
videoplayer.load(os.path.abspath(self.master.video_list[i]))
videoplayer.grid(row=0, column=i, sticky="NEWS",
padx=(10), pady=(20))
videoplayer.grid(row=0, column=i, sticky="NEWS", padx=(10), pady=(20))
self.videoplayers.append(videoplayer)

def load_audio_preview(self):
try:
if self.master.master.settings_component.audio_setting_component.has_audio_preview():
if (
self.master.master.settings_component.audio_setting_component.has_audio_preview()
):
self.mixer.music.load(
self.master.master.settings_component.audio_setting_component.get_audio_preview())
self.master.master.settings_component.audio_setting_component.get_audio_preview()
)
if self.is_playing:
self.mixer.music.play(
start=self.master.video_control_component.progress_value.get())
start=self.master.video_control_component.progress_value.get()
)
else:
self.mixer.music.set_pos(
self.master.video_control_component.progress_value.get())
self.master.video_control_component.progress_value.get()
)
else:
self.mixer.music.stop()
except Exception as err:
Expand All @@ -59,34 +63,40 @@ def unload_audio_preview(self):

def play_all(self):
self.is_playing = True
self.master.master.status_component.set_and_log_status(
"playing all videos")
self.master.master.status_component.set_and_log_status("playing all videos")
for videoplayer in self.videoplayers:
videoplayer.play()

# audio
if self.master.master.settings_component.audio_setting_component.has_audio_preview():
if (
self.master.master.settings_component.audio_setting_component.has_audio_preview()
):
self.load_audio_preview()
if self.mixer.music.get_pos() == -1:
self.load_audio_preview()
self.mixer.music.play(
start=self.master.video_control_component.progress_value.get())
start=self.master.video_control_component.progress_value.get()
)
else:
self.mixer.music.set_pos(
self.master.video_control_component.progress_value.get())
self.master.video_control_component.progress_value.get()
)
self.mixer.music.unpause()

def pause_all(self):
self.is_playing = False
self.master.master.status_component.set_and_log_status(
"pausing all videos")
self.master.master.status_component.set_and_log_status("pausing all videos")
for videoplayer in self.videoplayers:
videoplayer.pause()

# audio
if self.master.master.settings_component.audio_setting_component.has_audio_preview():
if (
self.master.master.settings_component.audio_setting_component.has_audio_preview()
):
self.mixer.music.pause()

def seek(self, value):
# audio
if self.master.master.settings_component.audio_setting_component.has_audio_preview():
if (
self.master.master.settings_component.audio_setting_component.has_audio_preview()
):
self.mixer.music.set_pos(value)

0 comments on commit ccfca1a

Please sign in to comment.