2013-03-25 54 views
0

我試圖讓我的VideoView與Asynctask一起工作。但是,有一些我無法理解的錯誤。任何人都可以請檢查我的代碼?我得到這個錯誤「java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()VideoView(無法在線程內部創建處理程序)

@Override 
     protected Void doInBackground(Void... params) { 
      try { 
       getWindow().setFormat(PixelFormat.TRANSLUCENT); 
       MediaController mediaController = new MediaController(
         MainActivity.this); 
       mediaController.setAnchorView(videoView); 

       Uri video = Uri.parse(videoPath); 
       videoView.setMediaController(mediaController); 
       videoView.setVideoURI(video); 
       videoView.requestFocus(); 
       videoView.setOnPreparedListener(new OnPreparedListener() { 

        public void onPrepared(MediaPlayer mp) { 

         pDialog.dismiss(); 
         videoView.start(); 
        } 
       }); 
      } catch (Exception e) { 

       System.out.println("Video Play Error :" + e.toString()); 
       // finish(); 
      } 
      return null; 

     } 
+0

爲什麼你使用AsyncTask來準備videoView? – 2013-03-25 06:43:03

+0

是的,這是我的doinbackground任務 – 2013-03-25 06:43:48

+0

我的意思是你爲什麼使用AsyncTask? – 2013-03-25 06:44:37

回答

1

不能在doInBackground方法更新視圖。移動代碼以更新onPostExecute方法中的視圖。

+0

感謝您的回覆,您能否告訴我哪些代碼將被移動? – 2013-03-25 06:41:29

+0

你可以發佈你的日誌貓的堆棧跟蹤嗎? – 2013-03-25 06:55:44

+0

我試着從doinbackground移動一切到onpostexecute,它的工作。我真的需要一個視頻流的Asynctask? – 2013-03-25 06:57:18

相關問題