2012-10-25 63 views
1

我仍然試圖理解片段及其工作原理。我有一個擴展布局的片段。我試圖按下按鈕時播放聲音,但我遇到了mediaplayer的一些問題。在片段中使用Mediaplayer

的代碼是:

private void playSound(int resId) { 
    MediaPlayer mp = MediaPlayer.create(Tab1Fragment.this, resId); 
    mp.setOnCompletionListener(Tab1Fragment.this); 
    mp.start(); 
} 

的錯誤是:The method create(Context, int) in the type MediaPlayer is not applicable for the arguments (Tab1Fragment, int)

我試着用getApplicationContext()無濟於事。

任何幫助表示讚賞 感謝

+5

使用getActivity()。這是Fragment API中的一個方法,它返回片段附加到的活動。只要確保100%,它總是在'onAttach()'之後調用。 – DeeV

+0

@DeeV工作完美! Thnanks! –

回答

0

使用此代碼在您的片段類的onCreateView方法,它會正常工作。

mp = MediaPlayer.create(getActivity, R.raw.songname); 

現在,您可以在您的按鈕單擊偵聽器上調用它的啓動方法。 確保爲片段類創建全局的MediaPlayer mp;,以便以後使用它。