qq_42458215 2022-10-27 04:12 采纳率: 74.3%
浏览 62
已结题

关于#Python#的问题,如何解决?

我想练习打字,但太无聊了 ,所以想做一个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()




  • 写回答

3条回答 默认 最新

  • a5156520 2022-10-27 09:40
    关注

    处理逻辑有一点问题,修改如下:

    参考链接:
    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()
        
            
            
            
           
          
    
            
            
            
           
          
    
            
            
            
           
          
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月29日
  • 已采纳回答 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥15 DB-GPT-HUB Text-to-SQL微调
  • ¥20 求解答(matlab)
  • ¥30 ffmpeg库使用过程中遇到的问题
  • ¥15 pyqt5 中python如何通过Qtwebchannel主动发消息给web前端
  • ¥15 关于HTML中title获取xml内容的问题
  • ¥15 fanuc机器人PRIO083数字信号未复原错误,如何解决?
  • ¥20 如何为现有电路板增加远程控制功能
  • ¥15 C#点击按钮的时候的循环次数就是最后一次,如何是循环第几次的值?
  • ¥15 UE5打包失败,求解决
  • ¥15 请问STM32G431的CANOPEN协议函数怎么写