空指针异常rtsp视频



我正在尝试从ipcam读取rtsp流。url在VLC中非常有效,但当我尝试用videoView启动它时,会得到一个nullPointerException。

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)

在我的主活动中(我只有一个)。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();
    }
}

而不是这个。。

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

试试这个。。

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

不能将findViewById作为layout

findViewById(int id) 的说明

最新更新