VLC 模块在 if 语句中不播放歌曲
VLC module not playing song while in if statement
我尝试编写代码询问用户用户想要播放什么歌曲(在显示的选项列表中),但问题是 vlc 模块不想播放歌曲。但是,我在没有 if 语句的情况下尝试过它并且它有效。这是我第一次编码,如果代码看起来乱七八糟,我很抱歉:
from tinytag import TinyTag as chimera
import vlc
def choice():
try:
print('music1')
print('music2')
print('music3')
music = int(input('choose the song you like\n'))
info(music)
musical(music)
except ValueError:
choice()
def info(music):
try:
if music == 1:
tag = chimera.get('C:/Users/user/music/music1.ogg')
print('song name %s' % tag.title )
print('Duration %f' % tag.duration)
elif music == 2:
tag = chimera.get('C:/Users/user/music/music2.m4a')
print('song name %s' % tag.title)
print('Duration %f' % tag.duration)
elif music == 3:
tag = chimera.get('C:/Users/user/music3.m4a')
print('song name %s' % tag.title)
print('Duration %f' % tag.duration)
else:
print('invalid input')
choice()
except SyntaxError:
pass
def musical(music):
playing = input('do you want to play the music?\n')
if music == 1 and playing == 'yes':
player1 = vlc.MediaPlayer('C:/Users/user/music/music1.ogg')
player1.play()
elif music == 2 and playing == 'yes':
player2 = vlc.MediaPlayer('C:/Users/user/music/music2.m4a')
player2.play()
elif music == 3 and playing == 'yes':
player3 = vlc.MediaPlayer('C:/Users/user/music/music3.m4a')
player3.play()
choice()
在 vlc
处于活动状态时,您需要保留程序 运行。
我对您的代码做了一些修改,出于我的目的,我删除了 tinytag
引用。
import vlc
import time
def choice():
try:
print('music1')
print('music2')
print('music3')
music = int(input('choose the song you like( 1-3 )\n'))
if music < 1 or music > 3:
raise ValueError
musical(music)
except ValueError:
print("Input error\n")
choice()
def musical(music):
if music == 1:
player = vlc.MediaPlayer('C:/Users/user/music/music1.ogg')
elif music == 2:
player = vlc.MediaPlayer('C:/Users/user/music/music2.ogg')
elif music == 3:
player = vlc.MediaPlayer('C:/Users/user/music/music3.ogg')
player.play()
playing = set([1,2,3,4])
time.sleep(0.1)
while True:
state = player.get_state()
if state not in playing:
break
time.sleep(1)
choice()
请注意 vlc 播放器 state
值为:
0: 'NothingSpecial',
1: 'Opening',
2: 'Buffering',
3: 'Playing',
4: 'Paused',
5: 'Stopped',
6: 'Ended',
7: 'Error',
我尝试编写代码询问用户用户想要播放什么歌曲(在显示的选项列表中),但问题是 vlc 模块不想播放歌曲。但是,我在没有 if 语句的情况下尝试过它并且它有效。这是我第一次编码,如果代码看起来乱七八糟,我很抱歉:
from tinytag import TinyTag as chimera
import vlc
def choice():
try:
print('music1')
print('music2')
print('music3')
music = int(input('choose the song you like\n'))
info(music)
musical(music)
except ValueError:
choice()
def info(music):
try:
if music == 1:
tag = chimera.get('C:/Users/user/music/music1.ogg')
print('song name %s' % tag.title )
print('Duration %f' % tag.duration)
elif music == 2:
tag = chimera.get('C:/Users/user/music/music2.m4a')
print('song name %s' % tag.title)
print('Duration %f' % tag.duration)
elif music == 3:
tag = chimera.get('C:/Users/user/music3.m4a')
print('song name %s' % tag.title)
print('Duration %f' % tag.duration)
else:
print('invalid input')
choice()
except SyntaxError:
pass
def musical(music):
playing = input('do you want to play the music?\n')
if music == 1 and playing == 'yes':
player1 = vlc.MediaPlayer('C:/Users/user/music/music1.ogg')
player1.play()
elif music == 2 and playing == 'yes':
player2 = vlc.MediaPlayer('C:/Users/user/music/music2.m4a')
player2.play()
elif music == 3 and playing == 'yes':
player3 = vlc.MediaPlayer('C:/Users/user/music/music3.m4a')
player3.play()
choice()
在 vlc
处于活动状态时,您需要保留程序 运行。
我对您的代码做了一些修改,出于我的目的,我删除了 tinytag
引用。
import vlc
import time
def choice():
try:
print('music1')
print('music2')
print('music3')
music = int(input('choose the song you like( 1-3 )\n'))
if music < 1 or music > 3:
raise ValueError
musical(music)
except ValueError:
print("Input error\n")
choice()
def musical(music):
if music == 1:
player = vlc.MediaPlayer('C:/Users/user/music/music1.ogg')
elif music == 2:
player = vlc.MediaPlayer('C:/Users/user/music/music2.ogg')
elif music == 3:
player = vlc.MediaPlayer('C:/Users/user/music/music3.ogg')
player.play()
playing = set([1,2,3,4])
time.sleep(0.1)
while True:
state = player.get_state()
if state not in playing:
break
time.sleep(1)
choice()
请注意 vlc 播放器 state
值为:
0: 'NothingSpecial',
1: 'Opening',
2: 'Buffering',
3: 'Playing',
4: 'Paused',
5: 'Stopped',
6: 'Ended',
7: 'Error',