停止播放事件上的MIDI文件

时间:2017-10-29 19:50:39

标签: python django pygame midi

这是我从Django App运行的脚本。它播放用户上传到站点的.mdi文件。

import pygame as pg

def play_music(music_file):
    clock = pg.time.Clock()

    try:
        pg.mixer.music.load(music_file)
        print("Music file {} loaded!".format(music_file))
    except pg.error:

        print("File {} not found! {}".format(music_file, pg.get_error()))
        return
    pg.mixer.music.play()
    # check if playback has finished
    while pg.mixer.music.get_busy():
        clock.tick(30)


def play(file):
    # pick a midi or MP3 music file you have in the working folder
    # or give full pathname
    # music_file = "/home/abhay/Desktop/moz2.mid" 
    music_file = "/home/abhay/Desktop/Django/MusicApp/" + file
    #music_file = "Drumtrack.mp3"

    freq = 44100    # audio CD quality
    bitsize = -16   # unsigned 16 bit
    channels = 2    # 1 is mono, 2 is stereo
    buffer = 2048   # number of samples (experiment to get right sound)
    pg.mixer.init(freq, bitsize, channels, buffer)

    # optional volume 0 to 1.0
    pg.mixer.music.set_volume(0.8)

    try:
        play_music(music_file)
    except KeyboardInterrupt:
        # if user hits Ctrl/C then exit
        # (works only in console mode)
        pg.mixer.music.fadeout(1000)
        pg.mixer.music.stop()
        raise SystemExit

仅在音乐完成时或者按Ctrl + C时退出。 但我需要通过在网页上放置一个按钮或键盘按下事件来停止它。它似乎没有从我所尝试的事件中捕捉到任何事件。

0 个答案:

没有答案