2015-01-01 1 views
1

Может кто-то сказать, что не так с этим кодом, я пытаюсь показать видео с url. используя Videoview и находится во фрагменте. поэтому я не могу продлить активность .. Я предполагаю, что ошибка исходит от я не уверен, если утра использовать только getActivity()фрагмент андроида в видеоввеке в табл.

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

 Смежные вопросы

  • Нет связанных вопросов^_^