首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空指针异常rtsp视频

空指针异常rtsp视频
EN

Stack Overflow用户
提问于 2013-12-13 11:48:59
回答 1查看 293关注 0票数 0

我正在尝试从ipcam读取rtsp流。url在VLC中工作得很好,但是当我尝试用一个nullPointerException启动它时,我会得到一个videoView。

代码语言:javascript
复制
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’.,但没有成功。

代码语言:javascript
复制
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();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-13 11:56:39

而不是这个。

代码语言:javascript
复制
videoView = (VideoView)findViewById(R.layout.activity_play_video);

试试这个..。

代码语言:javascript
复制
videoView = (VideoView)findViewById(R.id.videoView_id);

您不能以findViewById作为layout

关于findViewById(int id)的描述

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20565794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档