0

Pythonでpygletパッケージを使用して音楽プレーヤーのコードを書いています。無事に一曲演奏できました。しかし、電話をかけた後、曲を一時停止することはできませんpyglet.app.run()

一時停止を呼び出しpyglet.app.run()た後に呼び出すと、曲を再生できません。コードで再生と一時停止を管理するにはどうすればよいですか?

私のコード:

import pyglet

import time

player = pyglet.media.Player()

player.queue(pyglet.resource.media('1.mp3'))

player.play()

pyglet.app.run()

time.sleep(5)

player.pause()

print player.time()
4

4 に答える 4

0

このコードはあなたのために働くはずです

import pyglet
import threading
import time
class ControllerThread(threading.Thread):
    def __init__(self, player):
    threading.Thread.__init__(self)
        self.player = player
    def run(self):
        self.player.pause()
player = pyglet.media.Player()
pyglet.resource.path = [r'/your/source/path/']
pyglet.resource.reindex()
def muz():
    music = pyglet.resource.media(r'file.mp3')
    player.queue(music)
    player.play()
t=threading.Thread(target=muz)  
a=''
while a!=' ':
   a=raw_input("STOP/Play S/P: ")
   if a=='s':
       c = ControllerThread(player)
       c.start()
   elif a=='p':
       if t.isAlive():
           player.play()
       else:
           t=threading.Thread(target=muz)   
           t.start()
pyglet.app.run()
于 2016-10-30T15:40:54.620 に答える
0

次の例 (python 3.7、pyglet 1.5.6) では、SPACE を使用してビデオの再生を一時停止/再開します。

import pyglet
from pyglet.window import key

source = pyglet.media.load(VIDEO_FILE_PATH)
fmt = source.video_format

player = pyglet.media.Player()
player.queue(source)
player.play()

window = pyglet.window.Window(width=fmt.width, height=fmt.height)

@window.event
def on_draw():
    player.get_texture().blit(0, 0)

@window.event
def on_key_press(symbol, modifiers):
    if symbol == key.SPACE:
        if player.playing:
            player.pause()
        else:
            player.play()
        
pyglet.app.run()
于 2020-06-22T00:56:25.427 に答える