卸载kivy中的音频样本

2024-09-28 21:34:07 发布

您现在位置:Python中文网/ 问答频道 /正文

音频卸载似乎并没有真正释放内存,至少就linux上的top而言是这样。反复加载和卸载会导致内存使用率上升。我错过什么明显的东西了吗?你知道吗

from __future__ import print_function
import kivy
kivy.require('1.9.0') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.core.audio import SoundLoader

class SoundTest(BoxLayout):

    def __init__(self, **kwargs):
        super(SoundTest, self).__init__(**kwargs)
        button = Button(text='Play sound')
        self.add_widget(button)
        button.bind(on_release=self.PlaySound)

    def PlaySound(self, widget):
        snd = SoundLoader.load('test.ogg')
        snd.bind(on_stop=self.UnloadSoundWhenDone)
        snd.play()
        print ("play", snd)

    def UnloadSoundWhenDone(self, snd):
        print ("unload", snd)
        snd.unload()


class MyApp(App):

    def build(self):
        return SoundTest()

if __name__ == '__main__':
    MyApp().run()

更新:这似乎是使用kivy.core.audio文件.音频_gstplayer.SoundGstplayer文件后端。你知道吗


Tags: 内存fromimportselfappdefbutton音频
2条回答

实际上,内存似乎不会无限期地向上移动,因此虽然SoundGstplayer似乎比SDL2后端分配了更多的内存,但这可能是预期的。你知道吗

del an_obj

试着删除实际对象,也许?我不太清楚你在做什么。你知道吗

相关问题 更多 >