2013-12-13 5 views
0

Я пытаюсь прочитать поток rtsp из ipcam. URL-адрес отлично работает в VLC, но я получаю исключение nullPointerException, когда я пытаюсь запустить его с помощью videoView.null Указатель исключения rtsp video

java.lang.NullPointerException 
at com.xxx.myApp.PlayVideo.PlayVideo(PlayVideo.java:63) 
at com.xxx.myApp.PlayVideo.access$0(PlayVideo.java:48) 
at com.xxx.myApp.PlayVideo$1.onClick(PlayVideo.java:41) 
at android.view.View.performClick(View.java:4240) 
at android.view.View$PerformClick.run(View.java:17721) 
at android.os.Handler.handleCallback(Handler.java:730) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5103) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:525) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
at dalvik.system.NativeStart.main(Native Method) 

В моей mainActivity (у меня есть только одна). Файл rtsp точно так же, как и с VLC, и он работал. Я попытался добавить одинарные кавычки к имени пользователя, например: user = 'user' ..., без успеха.

private void PlayVideo(){ 
    try{    

     String rtspPath = "rtsp://x.x.x.x:554/user=user&password=&channel=1&stream=0.sdp?"; 
     getWindow().setFormat(PixelFormat.TRANSLUCENT); 

     videoView = (VideoView)findViewById(R.layout.activity_play_video); 

     MediaController mediaController = new MediaController(PlayVideo.this); 
     mediaController.setAnchorView(videoView); 

     Uri videoPath = Uri.parse(rtspPath); 
     System.out.println(videoPath); 
     videoView.setMediaController(mediaController); 
     //videoView.setVideoURI(videoPath); 
     videoView.setVideoPath(rtspPath); 
     videoView.requestFocus(); 

     videoView.setOnPreparedListener(new OnPreparedListener() { 

      @Override 
      public void onPrepared(MediaPlayer mp) { 
       progressDialog.dismiss(); 
       videoView.start(); 
      } 
     }); 


    }catch(Exception e){ 
     System.out.println("Message : " + e.getMessage()); 
     e.printStackTrace(); 
     progressDialog.dismiss(); 
     System.out.println("Video Play Error : "+e.toString()); 
     finish(); 
    } 
} 

ответ

1

Вместо этого ..

videoView = (VideoView)findViewById(R.layout.activity_play_video); 

Попробуйте это ..

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

Вы не можете findViewById в layout

Описание на findViewById(int id)

+0

Привет, спасибо. Теперь я могу запустить его, и я получил еще одну ошибку. Но во второй раз, когда я нажимаю кнопку воспроизведения, приложение закрывается с той же ошибкой. Это может быть связано с тем, что я снова определяю медиаплеер. В любом случае, я исправлю это позже, у меня есть все, что мне нужно для моих тестов. –

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