2013-03-25 4 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 для подготовки видеоView? –

+0

Да, это моя задача doinbackground –

+0

Я имею в виду, почему вы используете AsyncTask? –

ответ

1

Вы не можете обновить вид на doInBackground метод. переместите код для обновления вида по методу onPostExecute.

+0

Спасибо за ответ, Не могли бы вы показать мне, какую часть кодов нужно переместить? –

+0

Можете ли вы опубликовать свою трассировку стека из журнала cat? –

+0

Я пробовал перемещать все от doinbackground до onpostexecute, и это сработало. Действительно ли мне нужна Asynctask для потоковой передачи видео? –

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