2014-02-20 69 views
0

我已經設置了1個主要Activity(擴展了Activity類)和2個Fragments(擴展了片段類)。如何在多個片段之間共享MediaPlayer對象?

我試過設置一個接口,它由2個片段實現。每個片段從這樣的接口實現特定功能:

public stopMusic() 
{ 
    mediaplay.release(); // here, the mediaplay object belongs to only the respective fragment 
} 

現在,我知道有沒有用,因爲MediaPlayer對象是不常見的兩個片段,即它沒有被它們之間共享。

我正在尋找釋放流媒體文件在Fragment1.java,如果我從另一個片段,如Fragment2java按鈕釋放mediaplayer對象。同樣,如果我從Fragment1.java中點擊一個按鈕,則釋放在Fragment2.java中傳輸文件的mediaplayer對象。

我該如何做到這一點?一個示例代碼真的有幫助。

回答

1

比方說,片段A是控制片段,片段B是媒體播放器。所有的溝通都應該通過父活動完成。因此,在片段B中創建了父活動實現的「公共接口」,然後父活動應該調用片段B中的方法。

另外,還取決於您真正在使用媒體播放器或者其他什麼,這是屬於背景而不是片段B?

注意:片段應鬆散耦合,永遠不要從片段到​​片段進行通信,始終通過父活動進行通信。

希望這會有所幫助。

+0

謝謝,我已更新我的問題了解更多細節。 – sabergeek

0

你必須做到以下幾點:

  • 在您的MainActivity使一個屬性(讓我們稱之爲它myMediaPlayerObject
  • 在你的片段,你可以得到當前的活動就像這裏:Activity a = getActivity();
  • 現在你可以投這個活動並調用像這樣的功能:((MainActivity)a).stopMusic();或直接使用對象((MainActivity)a).myMediaPlayerObject