Python VLC脚本错误:AttributeError:';非类型';对象没有属性';新媒体播放器&x27;

Python VLC脚本错误:AttributeError:';非类型';对象没有属性';新媒体播放器&x27;,python,vlc,Python,Vlc,我正在尝试制作一个用python播放视频(.mp4)的简单脚本。我不想在网上播放YouTube视频或任何东西,只想在我的电脑上播放视频 这是我的密码: import vlc Instance = vlc.Instance() player = Instance.media_player_new() Media = Instance.media_new('test.mp4') Media.get_mrl() player.set_media(Media) player.play() 当我运行它时

我正在尝试制作一个用python播放视频(.mp4)的简单脚本。我不想在网上播放YouTube视频或任何东西,只想在我的电脑上播放视频

这是我的密码:

import vlc
Instance = vlc.Instance()
player = Instance.media_player_new()
Media = Instance.media_new('test.mp4')
Media.get_mrl()
player.set_media(Media)
player.play()
当我运行它时(谈论第3行),我一直遇到这个错误:

AttributeError:“非类型”对象没有属性“media\u player\u new”


我在macOS Sierra上的空闲环境中使用python 3.5.4。

您没有保持实例的打开状态

import vlc
Instance = vlc.Instance()
player = Instance.media_player_new()
Media = Instance.media_new('2005.mp3')
Media.get_mrl()
player.set_media(Media)
player.play()
while player.get_state() !=6:
    continue
应该工作还是
试试这个:

import vlc
import time
import sys

def progressbar(progress,guage_length=50):
    div = 100 / float(guage_length)
    prog = int(progress / div) # ensure progress fits in guage
    text = "\rPlaying: {0}{1}{2} [{3}%]".format(">"*prog,"|","-"*(guage_length - prog),format(progress,'.2f'))
    sys.stdout.write(text)
    sys.stdout.flush()

instance = vlc.Instance()
player = instance.media_player_new()
player.set_mrl("V2.mp4")
player.play()
playing = set([1,2,3,4])
play=True
guage_length=30
while play == True:
    time.sleep(0.5)
    play_state = player.get_state()
    if play_state in playing:
        length = player.get_length()
        ptime = player.get_time()
        progress = ptime/float(length)*100
        progressbar(progress,guage_length)
        continue
    else:
        progressbar(100,guage_length)
        play = False
print ("\nPlay terminated")
请注意#状态0:无、1打开、2缓冲、3播放、4暂停、5停止、6结束、7错误


警告:仅在Linux上测试

您可以使用

import vlc
p = vlc.MediaPlayer('2005.mp3')
p.play()
但这并不能解决你的问题。显然,vlc实例没有正确创建。这可能是由多种问题引起的。使用

i = vlc.Instance('--verbose 3')

查看可能的错误消息。

我通过在vlc.py中注释find_lib()解决了这个问题

p = os.getcwd()
os.chdir(os.path.join(p, 'sdk'))
dll = ctypes.CDLL("libvlc.dll")
plugin_path = os.path.join(os.getcwd(), r'sdk\plugins')

我在Raspberry Pi Zero和Raspbian Buster Lite上收到了这个错误消息。我花了很长时间寻找答案,但突然我注意到报纸上的评论:

请注意,它依赖于已安装的VLC


因此,用sudo apt install vlc安装vlc解决了这个问题

我可以想象,与命名对象的方式存在冲突。根据经验,永远不要对对象或变量使用大写字母(仅对类)。在第2行中,将
Instance
更改为
vlc_Instance
或类似的,并在其他行中重命名。这似乎不起作用