55 lines
1.1 KiB
Plaintext
55 lines
1.1 KiB
Plaintext
AudioController = class('AudioController')
|
||
|
||
--interval:毫秒
|
||
function AudioController:ctor(audioObj,interval,finishCallback)
|
||
self.source = audioObj:GetComponent(AudioSource)
|
||
self.interval = interval
|
||
if self.interval == nil then
|
||
self.interval = 1000
|
||
end
|
||
self.callback = finishCallback
|
||
end
|
||
|
||
function AudioController:SetFinishCallback(finishCallback)
|
||
self.callback = finishCallback
|
||
end
|
||
|
||
function AudioController:Play(audioClip)
|
||
|
||
if self.source.clip ~= nil then
|
||
GameObject.Destroy(self.source.clip)
|
||
end
|
||
|
||
self.source.clip = audioClip
|
||
self.source:Play()
|
||
|
||
if self.timeTick == nil then
|
||
self.timeTick = TimeTickManager.Me():CreateTick(0,self.interval,self.IsFinish,self)
|
||
end
|
||
end
|
||
|
||
function AudioController:Pause()
|
||
self.source:Pause()
|
||
end
|
||
|
||
function AudioController:Stop()
|
||
self.source:Stop()
|
||
|
||
TimeTickManager.Me():ClearTick(self)
|
||
self.timeTick = nil
|
||
end
|
||
|
||
function AudioController:IsFinish()
|
||
if not self.source.isPlaying then
|
||
if self.callback ~= nil then
|
||
self.callback()
|
||
end
|
||
if self.source.clip ~= nil then
|
||
GameObject.Destroy(self.source.clip)
|
||
end
|
||
end
|
||
end
|
||
|
||
function AudioController:IsPlaying()
|
||
return self.source.isPlaying
|
||
end |