簡體   English   中英

Kivy在第一次調用play()時不播放聲音文件

[英]Kivy doesn't play sound file the first time play() is called

我在Windows上運行一個簡單的Kivy應用程序。 當按下按鈕時,將從Kivy文檔( link )執行以下方法:

def play_audio(self):
    sound = SoundLoader.load('output.wav')
    if sound:
        print("Sound found at %s" % sound.source)
        print("Sound is %.3f seconds" % sound.length)
        sound.play()

第一次按下該按鈕時,它會播放大約半秒鍾的聲音,然后立即停止播放,或者根本不播放任何內容。 當我再次按下按鈕時,它將按預期播放整個文件。

為什么在第一次按下按鈕時就不播放文件,我如何使其正常工作?

任何幫助是極大的贊賞。

我認為線程將很有用。 甚至在按下按鈕之前嘗試加載一次聲音,如下所示:

from kivy.core.audio import SoundLoader
from kivy.base import runTouchApp
from kivy.uix.button import Button
import time

sound = SoundLoader.load('output.wav')
sound.seek(0)

class MyLabel(Button):
    def on_release(self):
        start_time = time.time()
        self.play_sound()
        print("--- %s seconds ---" % (time.time() - start_time))

    def play_sound(self):
        if sound:
            print("Sound found at %s" % sound.source)
            print("Sound is %.3f seconds" % sound.length)
            sound.play()

runTouchApp(MyLabel(text="Press me for a sound"))

如果您執行sound.seek(0)那么play_sound()函數在我的機器上完成的時間將減少大約十倍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM