@@ -12,6 +12,7 @@
← / → 后退 / 前进 10 秒
Shift+← / → 后退 / 前进 60 秒
↑ / ↓ 音量 +5 / -5
Ctrl+↑ / ↓ 快进步长 +1 / -1 秒( macOS 亦支持 Command+↑ / ↓)
M 静音 / 恢复
Ctrl+← / → 上一首 / 下一首( macOS 也支持 Command+← / →)
N / P 下一首 / 上一首
@@ -999,6 +1000,10 @@ class MediaPlayerApp(tk.Tk):
( " <Command-Right> " , lambda _e : self . next_track ( ) ) ,
( " <Up> " , self . _on_up ) ,
( " <Down> " , self . _on_down ) ,
( " <Control-Up> " , lambda _e : self . adjust_seek_step ( 1 ) ) ,
( " <Control-Down> " , lambda _e : self . adjust_seek_step ( - 1 ) ) ,
( " <Command-Up> " , lambda _e : self . adjust_seek_step ( 1 ) ) ,
( " <Command-Down> " , lambda _e : self . adjust_seek_step ( - 1 ) ) ,
( " <m> " , lambda _e : self . toggle_mute ( ) ) ,
( " <M> " , lambda _e : self . toggle_mute ( ) ) ,
( " <Control-o> " , lambda _e : self . open_files ( ) ) ,
@@ -1024,10 +1029,19 @@ class MediaPlayerApp(tk.Tk):
( " <Return> " , lambda _e : self . play_selected ( ) ) ,
]
for sequence , handler in shortcuts :
self . bind ( sequence , handler )
self . listbox . bind( sequence , handler )
wrapped = self . _break_handler ( handler )
self . bind ( sequence , wrapped )
self . listbox . bind ( sequence , wrapped )
self . listbox . bind ( " <Double-Button-1> " , lambda _e : self . play_selected ( ) )
@staticmethod
def _break_handler ( handler ) :
""" 包装快捷键回调:执行后返回 " break " ,阻止事件继续冒泡造成重复触发。 """
def run ( event ) :
handler ( event )
return " break "
return run
def _on_space ( self , _event ) :
self . toggle_play ( )
return " break "
@@ -1281,6 +1295,16 @@ class MediaPlayerApp(tk.Tk):
self . _save_settings ( )
self . status_var . set ( f " 快进步长已设为 { value } 秒(已保存) " )
def adjust_seek_step ( self , delta ) :
value = max ( 1 , min ( 600 , self . seek_step + delta ) )
if value == self . seek_step :
self . status_var . set ( f " 快进步长已到 { ' 上限 ' if delta > 0 else ' 下限 ' } ( { value } 秒) " )
return
self . seek_step = value
self . seek_step_var . set ( str ( value ) )
self . _save_settings ( )
self . status_var . set ( f " 快进步长已设为 { value } 秒(已保存) " )
def _on_seek_step_return ( self , _event ) :
self . _commit_seek_step ( )
self . focus_set ( )