2011-07-30 43 views
1

我目前正在開發音樂播放器並創建了一項服務,以在後臺播放音樂。在我的Galaxy SI的任務管理器中,我注意到我的應用程序的CPU使用率爲0,30-1,10%,我也注意到原生音樂播放器(以及其他人)的CPU使用率大約爲0 ,00%(穩定)。可能導致用量增加的原因是什麼?Android:關於cpu使用的問題。

注:我沒有在我的應用程序中使用任何多線程或asynctasks。

+0

您是否在使用MediaPlayer類進行播出? – Shash316

回答

1

如果您使用自定義多媒體堆棧而不是默認的android堆棧,則會發生這種情況。即如果您不使用MediaPlayer類。 MediaPlayer類內部與適當的媒體框架進行交互,例如Stagefright或Opencore。這些媒體框架將具有硬件加速解碼器=>低CPU消耗。

但是,如果您使用的是AudioTrack,那麼解析和解碼就在您身上,而且解碼需要相當長的時間。這肯定會導致CPU使用率的增加。

Shash

+0

我不知道我是否理解你,但我創建了我的播放器「MediaPlayer player = new MediaPlayer」MediaPlayer是Android(android.media.MediaPlayer)的類。 – Tim

+0

好吧,那麼它不是因爲定製多媒體堆棧的軟件編解碼器。反正可以分享涉及mediaplayer的代碼? – Shash316

+0

好的,所以在onCreate()方法中,我創建了我的播放器「MediaPlayer player = new MediaPlayer();」然後我有用於播放」 ... \t player.reset()的方法; \t 字符串文件名= position.get(curtrack); player.setDataSource(文件名); player.prepare(); player.start( ); player.seekTo(progr);(「position」是一個ArrayList,其中包含我的歌曲的路由) – Tim