2014-04-28 159 views
-1

我創建這個片段來流視頻,但我得到兩個錯誤聲明方法findViewById(INT)是未定義的,並且構造函數MediaController是未定義的。findViewById(int)方法未定義,構造函數MediaController未定義

public class CommunityFragment extends Fragment { 

VideoView videoview; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View v = inflater.inflate(R.layout.fragment_community, container, false); 
    VideoView videoView=(VideoView)v.findViewById(R.id.VideoView); 

    MediaController mediaController = new MediaController(getActivity().getApplicationContext()); 

    String str="http://202.73.9.10:1935/live2/smil:kctv_all.smil/playlist.m3u8"; 
    Uri uri = Uri.parse("first_uri"); 


    mediaController.setAnchorView(videoView); 
     videoView.setVideoURI(uri); 
     videoView.setMediaController(mediaController); 
     videoView.start(); 
    return v; 
} 
} 
+0

我將所有進入onCreateView,但現在它聲明「無法播放視頻」 – Key

回答

0

你有

VideoView videoView=(VideoView)getActivity().findViewById(R.id.VideoView); 

videoview = (VideoView)findViewById(R.id.VideoView); 

如果VideoView屬於該活動的第一行是一種正常的,你可以刪除第二個。它VideoView屬於片段,您可以使用

videoview = (VideoView)getView().findViewById(R.id.VideoView); 

,擺脫第一個

+0

它的工作原理,我使用第三個但構造函數MediaController仍未定義。 – Key

0

的使用fragmet,請把你的代碼和OnCreateView所有方法, 因爲像在創建活動中,片段在創建片段時有自己的實現。

例如:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    super.onCreateView(inflater, container, savedInstanceState); 
    View v = inflater.inflate(R.layout.frag_timeline, container, false); 

    initViews(v); 


    return v; 
} 

我的初始化View功能:

private void initViews(View v) 
{ 

    profileName = (TextView) v.findViewById(R.id.profileName); 

    profilePic = (ImageView) v.findViewById(R.id.profilePic); 

    profileNameSymbol= (TextView) v.findViewById(R.id.profileNameSymbol); 


    } 
0

你已經有這樣的:

MediaController mediaController = new MediaController(getActivity().getApplicationContext());

幾行後,你這樣做:

mediaController = new MediaController(this);

this是片段,而片段不是有效的Context。您將使用getActivity()而不是this,但如前所述,此行已不必要。

+0

我編輯上面的代碼,但現在我得到錯誤狀態,它無法播放視頻。 – Key

+0

請參閱MediaPlayer文檔(http://developer.android.com/reference/android/media/MediaPlayer.html)以及媒體播放指南(http://developer.android.com/guide/topics/媒體/ mediaplayer.html)。媒體播放器遵循特定的狀態機,並且必須確保媒體已準備就緒,然後才能開始播放。 – Karakuri

相關問題