我编辑了VideoViewDemo.java(由官方网站提供的Android Vitamio演示),目的是将cookie添加到Vitamio生成的请求标头中。
(使用方法“ setVideoPath”时,标题是自动发送的。)

原始VideoViewDemo.java:

...
} else {
        /*
         * Alternatively,for streaming media you can use
         * mVideoView.setVideoURI(Uri.parse(URLstring));
         */
        mVideoView.setVideoPath(path);
        mVideoView.setMediaController(new MediaController(this));
        mVideoView.requestFocus();
...



编辑了VideoViewDemo.java:

...
} else {

        Map<String, String> headers = new HashMap<String, String>();
        headers.put("Cookie", "test=abc; test2=def");
        mVideoView.setVideoHeaders(headers);

        /*
         * Alternatively,for streaming media you can use
         * mVideoView.setVideoURI(Uri.parse(URLstring));
         */
        mVideoView.setVideoPath(path);
        mVideoView.setMediaController(new MediaController(this));
        mVideoView.requestFocus();
...



然后,我使用Wireshark检查数据包。

我“预期”的结果:



我得到的结果是:



它表明,我尝试添加的cookie没有包含在Vitamio生成的请求标头中。
我的代码有什么问题吗?
还是有其他方法可以实现我的目标?

设备:HTC J Z321e
Android版本:4.1.1
Vitamio版本:4.2.0(2013-12-31)
IDE:Windows 7 32位上的Eclipse
图片网址:http://imgur.com/dY7qajG&lHoxxwo#0

最佳答案

终于找到了解决方案。标头采用ADOption样式,因此应按以下方式使用:

Map<String, String> headers = new HashMap<String, String>();
headers.put("headers", "Cookie:"+stringCookie+"\r\n"+"User-agent:Mozilla\r\n");
videoView.setVideoURI(Uri.parse(url), headers);

关于android - 如何使用Vitamio for Android的VideoView的“setVideoHeaders”方法添加cookie?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23126106/

10-10 01:50