2011-04-15 19 views
1

我在android中製作廣播應用程序。我面臨一個奇怪的問題。我知道這可能很容易,但只是無法弄清楚如何做到這一點。我相信有人會遇到類似的問題,我會在這裏得到解決方法在Android應用程序中加載廣播電臺時顯示緩衝

我有第一頁顯示站列表。一旦我點擊了這些工作站中的任意一個,就會啓動一個新的活動,該活動具有包含播放,暫停,停止控件的視圖。當這個活動開始時,我也立即使用startSevice() 方法調用一個新的服務。所有的媒體播放器處理都在本服務中完成。

現在,我需要在實際媒體播放開始之前顯示進度對話框(緩衝)。爲了表明我試圖在服務中創建ProgressDialog,但它要求傳遞上下文,我想我需要傳遞已調用此服務的活動的上下文,因爲當我將當前上下文傳遞給它會拋出一個錯誤。

有人知道如何做到這一點嗎?有沒有辦法獲得啓動服務的活動的上下文?

如果不是,這可能是一些其他的方式來實現這一目標,那就是顯示緩存狀態,而媒體還沒有開始打

+0

還沒有評論...任何人都可以幫忙.... – user669231 2011-04-16 06:14:17

回答

0

使用廣播意圖。將服務綁定到活動並以1秒爲間隔向活動廣播緩衝進度。在接收廣播的活動中創建一個接收器,並將其轉換爲活動中的進度條。

我有一個問題,也許你可以回答:我正在使用服務,就像你的方式,但是當緩衝第一次開始時,我不清楚如何捕捉音頻開始播放時,以便我可以刪除「緩衝」通知。我嘗試了OnBufferingUpdate,但是它有一個百分比值,表示音頻是否播放。謝謝。

+0

感謝您提供一個出路。然而,我已經實現了不同的方式來完成。我相信,可以幫助回答你的第二個問題 – user669231 2011-04-30 02:33:31

+0

我在服務中創建了進度條,而不是調用活動。我使用全局變量將調用活動的上下文傳遞給服務。然後該服務在該環境中創建了緩衝通知 至於第二個問題,如果您在服務中創建通知,您將會知道MediaPlayer的start()函數何時返回(其阻止函數),以及作爲一旦返回,只需關閉進度欄即可 – user669231 2011-04-30 02:39:45

相關問題