2016-04-23 179 views
2

在Libgdx(面向Android開發)中,我正面臨此問題,因此有時候播放的聲音無法播放。據我所知,這是當一個老的聲音沒有完成播放。有沒有辦法跟蹤當前正在播放的聲音,並阻止他們播放新的聲音。我有一個循環的音樂在後臺運行,但這並不會導致它移除它也會導致相同的聲音不匹配。我通過AssetManager加載聲音。希望你們能提前幫助,thanx!Libgdx停止當前正在播放的聲音並播放一個新聲音

回答

0

如果您想確定聲音是否正在播放,那麼您不應該這樣做。當然你可以通過存儲長度和時間來做到這一點,但Sound被創建爲火併忘記

您可以使用Music和剛纔使用的isPlaying()方法。

方法play()返回新聲音實例的ID。您可以將ID存儲在數組中,然後使用stop(id)來停止所需的聲音,或者僅使用stop()來停止該聲音的所有實例。

我也建議檢查文件大小從libGDX GitHub的維基:

注:在Android上,一個聲音實例不能大小超過1MB。如果你 有一個更大的文件,使用音樂

+0

我是對的論點,聲音不播放,因爲舊的聲音仍在播放? –

+0

'play()'應該總是創建新的實例,所以它不應該對舊的實例做任何事情,但可能會有限制。 – pr0gramist

+0

我已經通過加載沒有assetmanager的聲音來解決它 –