Python VLC脚本错误:AttributeError:';非类型';对象没有属性';新媒体播放器&x27;
我正在尝试制作一个用python播放视频(.mp4)的简单脚本。我不想在网上播放YouTube视频或任何东西,只想在我的电脑上播放视频 这是我的密码: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() 当我运行它时
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
或类似的,并在其他行中重命名。这似乎不起作用