2012-04-24 32 views
0

我有一首歌在連續播放,使用Android MediaPlayer連續播放,我的意思是它永遠循環播放。Android SoundPool類在我的應用程序中表現怪異

我也有25-30短暫的聲音,我在離散的持續時間使用SoundPool類,並且他們也必須一次又一次地播放與主歌曲。

聲音是0.5每秒的持續時間,其中一些是0.7Mb的大小,而歌曲的平均大小約爲0.4Mb

我能夠在我製作這個應用程序的設備上順利地完成這件事,然後我開始知道SoundPool在雙核手機上的問題。所以我撤回了對他們的支持。

最近,我在運行2.3.3的舊設備上測試了應用程序,新問題是,聽起來似乎在第4-5週期內正常播放,即直到主歌曲播放4-5次,然後在第6次時間,在播放聲音有明顯的延遲,我記錄了SoundPool.play()的值,發現延遲是〜(1-2秒),而這個問題只在低端手機上出現,爲什麼會發生這種情況,我猜想問題是由SoundPool類造成的,並且完全不是硬件問題,因爲我測試過的設備有充足的RAM,即500Mb和合適的600Mhz處理器。

我真的需要解決這個問題,因爲我希望我的應用可以在大多數設備上運行,除了雙核手機外。

此外,我不能使用MediaPlayer來播放我的聲音,因爲我不想增加CPU開銷並使我的應用程序更滯後,也不知道我想在播放之前播放多少聲音。

任何線索如何解決這個問題,並減少滯後,是最受歡迎的。

回答

1

音頻/視頻回放通常是有問題的,因爲涉及到很多硬件/低級軟件因素(可能存在專用解碼硬件在單獨的芯片上和/或嵌入到CPU中,並且所有這些與軟件解碼器,在藍牙,耳機插孔和2個揚聲器之間切換,從內核到Android系統的巨大軟件堆棧等)。它可能是Android設備中最脆弱的子系統。許多設備在該區域具有較小的怪癖,並且不直接與Mhz/RAM/Dualcore相關。不幸的是,你必須與他們中的一些生活:(

你最好的選擇是嘗試不同的方式來播放/壓縮你的音頻。像5個週期後重新開始播放等東西

相關問題