我试图在媒体上调用get_stats()
函数:
>>> instance = vlc.Instance()
>>> media = instance.media_new('song.mp3')
>>> media.get_stats()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: get_stats() missing 1 required positional argument: 'p_stats'
>>> media.get_stats('input_bitrate')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/alain/Audio/vlc.py", line 2517, in get_stats
return libvlc_media_get_stats(self, p_stats)
File "/home/alain/Audio/vlc.py", line 5349, in libvlc_media_get_stats
return f(p_md, p_stats)
ctypes.ArgumentError: argument 2: <class 'TypeError'>: expected LP_MediaStats instance instead of str
LP_MediaStats
中不存在预期的参数类型vlc.py
,但我发现了这一点:
class MediaStats(_Cstruct):
_fields_ = [
('read_bytes', ctypes.c_int ),
('input_bitrate', ctypes.c_float),
('demux_read_bytes', ctypes.c_int ),
('demux_bitrate', ctypes.c_float),
('demux_corrupted', ctypes.c_int ),
('demux_discontinuity', ctypes.c_int ),
('decoded_video', ctypes.c_int ),
('decoded_audio', ctypes.c_int ),
('displayed_pictures', ctypes.c_int ),
('lost_pictures', ctypes.c_int ),
('played_abuffers', ctypes.c_int ),
('lost_abuffers', ctypes.c_int ),
('sent_packets', ctypes.c_int ),
('sent_bytes', ctypes.c_int ),
('send_bitrate', ctypes.c_float),
]
有谁知道如何使用这个功能?
答案 0 :(得分:0)
从文档here开始。它说:
libvlc_media_get_stats(p_md, p_stats)
获取当前统计信息 关于媒体。参数: p_md - :媒体描述符对象。 p_stats - :结构 包含有关媒体的统计信息(此结构必须是 由呼叫者分配)。返回:如果统计信息,则返回true 可用,否则为\ libvlc_return_bool。
根据文档,您应该使用media descriptor
作为参数。现在我们必须弄清楚如何获取媒体描述符。