0

我正在开发一个尝试显示在网络服务器上流式传输的视频的应用程序。我有视频流的 HTTP 链接。为了连接到网络服务器,我连接到一个特定的 WIFI,它使我能够访问视频。

我已经处理了WIFI连接。当我尝试使用 VideoView 在我的应用上显示视频时遇到问题。我使用了一个工具,它显示我正在从服务器接收数据。所以我的应用程序正在接收视频的数据包,但无法显示它。

代码是这样的:

    private VideoView videoView;
    videoView = (VideoView)findViewById(R.id.VideoView_videoOnly);
    ....
    ....
    //connect to the router
    String ip = "http://192.168.2.250";
    URL url = null;
    try {
        url = new URL(ip);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    URLConnection connection = null;
    try {
        connection = url.openConnection();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    String vidLink = "http://XXXX:XXXX@192.168.2.250/axis-cgi/mjpg/video.cgi";
    //set up video streaming
    MediaController mc = new MediaController(this);
    mc.setAnchorView(videoView);
    mc.setMediaPlayer(videoView);
    Uri video = Uri.parse(vidLink);
    videoView.setMediaController(mc);
    videoView.setVideoURI(video);
    videoView.start();

}

}

XXXX:XXXX是访问视频流的用户名和密码

4

1 回答 1

1

根据您使用的 URL,可以猜到,您正在接收 MJPEG 格式的流。Android 本身不支持 MJPEG。您必须将流分解为 jpeg,然后从每个 jpeg 创建一个位图,然后一张一张地显示位图。

于 2012-05-24T20:26:39.153 回答