2015-01-01 27 views
1

有人可以告訴這個代碼有什麼問題我試圖從url顯示視頻。使用Videoview,它在一個片段。所以我不能延長活動..我猜錯誤來了從我不知道,如果上午只使用getActivity()Android中的片段在videoview中的標籤

ProgressDialog(getActivity().getApplicationContext()); 

我有錯誤 這是我的代碼

package com.mall.first; 
import com.actionbarsherlock.app.SherlockFragment; 
import android.app.ProgressDialog; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnPreparedListener; 
import android.net.Uri; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.MediaController; 
import android.widget.VideoView; 

public class Now_Showing extends SherlockFragment { 
    ProgressDialog pDialog; 
    VideoView videoview; 

    // Insert your Video URL 
    String VideoURL = "http://10.0.2.2/stop.3gp"; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.nowshowing, container, false); 
     final VideoView videoview =(VideoView) rootView.findViewById(R.id.videoView1); 
     pDialog = new ProgressDialog(getActivity().getApplicationContext()); 
     // Set progressbar title 
     pDialog.setTitle("Android Video Streaming Tutorial"); 
     // Set progressbar message 
     pDialog.setMessage("Buffering..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(false); 
     // Show progressbar 
     pDialog.show(); 

     try { 
      // Start the MediaController 
      MediaController mediacontroller = new MediaController(getActivity().getApplicationContext()); 
      mediacontroller.setAnchorView(videoview); 
      // Get the URL from String VideoURL 
      Uri video = Uri.parse(VideoURL); 
      videoview.setMediaController(mediacontroller); 
      videoview.setVideoURI(video); 

     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 

     videoview.requestFocus(); 
     videoview.setOnPreparedListener(new OnPreparedListener() { 
      // Close the progress bar and play the video 
      public void onPrepared(MediaPlayer mp) { 
       pDialog.dismiss(); 
       videoview.start(); 
      } 
     }); 
     return rootView; 


}} 

logcat的:

12-31 17:25:10.140: E/AndroidRuntime(5021): FATAL EXCEPTION: main 
12-31 17:25:10.140: E/AndroidRuntime(5021): Process: com.mall.first, PID: 5021 
12-31 17:25:10.140: E/AndroidRuntime(5021): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at android.view.ViewRootImpl.setView(ViewRootImpl.java:540) 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at android.app.Dialog.show(Dialog.java:286) 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at com.mall.first.Now_Showing.onCreateView(Now_Showing.java:37) 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 
12-31 17:25:10.140: E/AndroidRuntime(5021):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 
+1

您確定該文件是否正常,並且您的清單文件中是否有'android.permission.INTERNET'權限? – pajaja

+0

檢查Android設備/模擬器和服務器(無論是10.0.2.2)是否可以互相訪問。 – petey

+0

是的,我還沒有工作 – arinze

回答

0

getApplicationContext()使用Context爲您的Application。當你使用片段時,你只需要使用getActivity()而不是getActivity().getApplicationContext()。因此,只要改變從

getActivity().getApplicationContext() 

getActivity() 

您的語境。

+0

非常感謝你 – arinze

+0

很高興幫助你 – RockStar