audio.engine: dispose generator for streaming-audio-clip when it finishes
parent
1ca0b14235
commit
91e014ef96
|
@ -285,7 +285,7 @@ M: audio-engine dispose*
|
|||
al-buffers [ clip swap queue-clip-buffer ] each
|
||||
clip audio-engine clips>> push
|
||||
clip
|
||||
] [ f ] if ;
|
||||
] [ generator dispose f ] if ;
|
||||
|
||||
M: audio-clip dispose*
|
||||
[ dup audio-engine>> clips>> remove! drop ]
|
||||
|
@ -297,7 +297,8 @@ M: static-audio-clip dispose*
|
|||
|
||||
M: streaming-audio-clip dispose*
|
||||
[ call-next-method ]
|
||||
[ al-buffers>> [ length ] keep alDeleteBuffers ] bi ;
|
||||
[ generator>> dispose ]
|
||||
[ al-buffers>> [ length ] keep alDeleteBuffers ] tri ;
|
||||
|
||||
: play-clip ( audio-clip -- )
|
||||
[ update-source ]
|
||||
|
|
|
@ -14,12 +14,14 @@ M: noise-generator generate-audio
|
|||
drop
|
||||
4096 [ -4096 4096 [a,b] random ] short-array{ } replicate-as
|
||||
8192 ;
|
||||
M: noise-generator dispose
|
||||
drop ;
|
||||
|
||||
:: audio-engine-test ( -- )
|
||||
"vocab:audio/engine/test/loop.aiff" read-audio :> loop-sound
|
||||
"vocab:audio/engine/test/once.wav" read-audio :> once-sound
|
||||
0 :> i!
|
||||
<standard-audio-engine> :> engine
|
||||
f 4 <audio-engine> :> engine
|
||||
engine start-audio*
|
||||
|
||||
engine T{ audio-source f { 1.0 0.0 0.0 } 1.0 { 0.0 0.0 0.0 } f } loop-sound t
|
||||
|
|
Loading…
Reference in New Issue