我想练习打字,但太无聊了 ,所以想做一个Python小脚本,使得我每打一个字,歌曲都会演奏3秒后暂停,使得我就象在演奏乐器一样,但是我做的这个脚本,虽然能播放音乐,但是不能达到要求
import time
import pygame
from pynput.keyboard import Key,Controller as key
import keyboard
pygame.mixer.init()
pygame.mixer.music.load("ウォルピスカーター - 晴天前夜.mp3")
pygame.mixer.music.play()
while(1):
event =pygame.event.get()
if event==keyboard.KEY_DOWN:
pygame.mixer.music.pause()
pygame.mixer.music.unpause()
time.sleep(3)
pygame.mixer.music.pause()
处理逻辑有一点问题,修改如下:
参考链接:
Python怎么计算时间差(含代码实例)_旅途中的宽~的博客-CSDN博客_python 时间差
python keyboard获取键盘事件_Python借助keyboard监听键盘事件_weixin_39801465的博客-CSDN博客
import time
import pygame
from pynput.keyboard import Key,Controller as key
import keyboard
import datetime
def showMusic(s):
pygame.mixer.init()
#https://blog.csdn.net/wzk4869/article/details/126432432
now_time=datetime.datetime.now() #音乐播放开始时间
pygame.mixer.music.load("ウォルピスカーター - 晴天前夜.mp3")
pygame.mixer.music.play()
#计算音乐播放的3秒后是什么时间
end_time=(now_time+datetime.timedelta(seconds=3))
#如果时间没有超过3秒,则一直计算时间是否超过 改为time.sleep(3) 也可以
while (end_time-now_time).seconds>0:
now_time=datetime.datetime.now()
#print("(end_time-start_time).seconds=",str((end_time-now_time).seconds))
#超过3秒,停止播放音乐
pygame.mixer.music.pause()
#time.sleep(3)
#asdfpygame.mixer.music.pause()
while(1):
#https://blog.csdn.net/weixin_39801465/article/details/111431166
keyboard.on_press(showMusic) #当键盘按下事件发生时,调用音乐播放函数
keyboard.wait()
用input控制输入,控制台程序keyboard读取不到键值
import time
import pygame
#from pynput.keyboard import Key,Controller as key
#import keyboard
#pygame.init()#这里没有初始化下面while中event =pygame.event.get()会报错pygame.error: video system not initialized
pygame.mixer.init()
pygame.mixer.music.load("001.mp3")
pygame.mixer.music.play()
pygame.mixer.music.pause()
while(1):
#event =pygame.event.get()#而且控制台获取不到键盘事件,改input让用户输入
event=input()
#if event==keyboard.KEY_DOWN:
pygame.mixer.music.unpause()
time.sleep(3)
pygame.mixer.music.pause()