使用 VLC play/pause 单独函数内的音轨
Using VLC to play/pause an audio track inside of separate functions
我有一个函数 (cmd_sr) 使用 VLC-python 库播放音轨。
我的目标是使用不同的功能来暂停、停止、更改曲目等。但是如果我尝试在不同的功能中暂停曲目,则不会有任何变化。如果我将 p.pause() 添加到 cmd_sr 函数中,它工作正常。
有没有办法将 cmd_pause() 函数嵌入到 cmd_sr() 中,或者以某种方式允许它被任何函数访问或暂停?
def cmd_sr(stream_url):
global p
p = vlc.MediaPlayer(stream_url)
p.play()
def cmd_pause():
print(stream_url)
p = vlc.MediaPlayer(stream_url)
sendMessage(s, "Tried to pause")
p.pause()
我认为 MediaPlayer
创建后不需要重新创建。
一种方法可以是:
# The player
p = None
def cmd_init(stream_url):
global p
p = vlc.MediaPlayer(stream_url)
def cmd_sr(stream_url):
p.play()
def cmd_pause():
sendMessage(s, "Tried to pause")
p.pause()
但是,使用全局变量(此处:p)不是很优雅。最佳做法是使用 class:
class MyPlayer(object):
def __init__(self, stream_url):
self.player = vlc.MediaPlayer(stream_url)
def play(self):
self.player.play()
def pause(self):
sendMessage(s, "Tried to pause")
self.player.pause()
我有一个函数 (cmd_sr) 使用 VLC-python 库播放音轨。
我的目标是使用不同的功能来暂停、停止、更改曲目等。但是如果我尝试在不同的功能中暂停曲目,则不会有任何变化。如果我将 p.pause() 添加到 cmd_sr 函数中,它工作正常。
有没有办法将 cmd_pause() 函数嵌入到 cmd_sr() 中,或者以某种方式允许它被任何函数访问或暂停?
def cmd_sr(stream_url):
global p
p = vlc.MediaPlayer(stream_url)
p.play()
def cmd_pause():
print(stream_url)
p = vlc.MediaPlayer(stream_url)
sendMessage(s, "Tried to pause")
p.pause()
我认为 MediaPlayer
创建后不需要重新创建。
一种方法可以是:
# The player
p = None
def cmd_init(stream_url):
global p
p = vlc.MediaPlayer(stream_url)
def cmd_sr(stream_url):
p.play()
def cmd_pause():
sendMessage(s, "Tried to pause")
p.pause()
但是,使用全局变量(此处:p)不是很优雅。最佳做法是使用 class:
class MyPlayer(object):
def __init__(self, stream_url):
self.player = vlc.MediaPlayer(stream_url)
def play(self):
self.player.play()
def pause(self):
sendMessage(s, "Tried to pause")
self.player.pause()