我想使用 moviepy 库中的 write_audiofile 函数将 mp4 文件转换为 mp3 文件,并使用进度条在 PyQT5 应用程序中显示进度。
当我使用时:
mp4audio.write_audiofile(filename, logger="bar")
它在控制台中显示一个进度条,那么我可以以某种方式访问该进度变量并使用它来更新 PyQt5 应用程序中的进度条吗?
我也尝试过这个:
from proglog import ProgressBarLogger
from my_library import my_routine
class MyBarLogger(ProgressBarLogger):
def callback(self, **changes):
# Every time the logger is updated, this function is called with
# the `changes` dictionnary of the form `parameter: new value`.
for (parameter, new_value) in changes.items():
print ('Parameter %s is now %s' % (parameter, value))
logger = MyBarLogger()
my_routine(logger=logger)
但它只在开始和结束时记录消息。不是进步。
Parameter message is now MoviePy - Writing audio in C:/Users/.../file.mp3
Parameter message is now MoviePy - Done.
请问有人知道解决办法吗?
似乎没有很好的记录proglog
but callback
of ProgressBarLogger
获得对一次性消息的访问权限,但是bars_callback
进度本身需要:
class MyBarLogger(ProgressBarLogger):
def callback(self, **changes):
# Every time the logger message is updated, this function is called with
# the `changes` dictionary of the form `parameter: new value`.
for (parameter, value) in changes.items():
print ('Parameter %s is now %s' % (parameter, value))
def bars_callback(self, bar, attr, value,old_value=None):
# Every time the logger progress is updated, this function is called
percentage = (value / self.bars[bar]['total']) * 100
print(bar,attr,percentage)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)