簡體   English   中英

如何在多個片段之間共享MediaPlayer對象?

[英]How to share a MediaPlayer object between multiple fragments?

我設置了1個Main Activity(擴展了Activity類)和2個Fragments(擴展了Fragment類)。

我嘗試設置一個由2個片段實現的接口。 每個片段都從接口實現以下特定功能:

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

現在,我知道這是行不通的,因為MediaPlayer對象對於兩個片段而言並不通用,即,它們之間沒有共享。

如果我按下另一個片段(例如Fragment2java)中的按鈕,我正在尋求釋放流式播放器在Fragment1.java中的文件的媒體播放器對象。 同樣,如果我按Fragment1.java中的一個按鈕,則要釋放在Fragment2.java中流傳輸文件的mediaplayer對象。

我怎樣才能做到這一點? 示例代碼確實有幫助。

假設片段A是控制片段,片段B是媒體播放器。 所有通信都應通過父活動進行。 因此,在片段B中,您將創建父活動實現的“公共接口”,然后父活動應調用片段B中的方法。

還取決於您對媒體播放器的實際操作或其他功能,與片段B相對應,它是在后台嗎?

注意:片段應該松散耦合,並且永遠不要在片段之間進行通信,始終通過父Activity進行通信。

希望這可以幫助。

您必須執行以下操作:

  • 在您的MainActivity中創建一個屬性(將其myMediaPlayerObject
  • 在您的片段中,您可以獲得如下所示的當前活動: Activity a = getActivity();
  • 現在您可以進行此活動的轉換並調用如下函數: ((MainActivity)a).stopMusic(); 或直接使用對象((MainActivity)a).myMediaPlayerObject

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM