音频卸载似乎并没有真正释放内存,至少就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文件后端。你知道吗
实际上,内存似乎不会无限期地向上移动,因此虽然SoundGstplayer似乎比SDL2后端分配了更多的内存,但这可能是预期的。你知道吗
试着删除实际对象,也许?我不太清楚你在做什么。你知道吗
相关问题 更多 >
编程相关推荐