android mediaplayer中带有摘要认证的rtsp实时流

android mediaplayer中带有摘要认证的rtsp实时流,android,android-mediaplayer,rtsp,live-streaming,digest-authentication,Android,Android Mediaplayer,Rtsp,Live Streaming,Digest Authentication,我需要一个android应用程序来使用videoview或带有摘要认证的媒体播放器实时传输rtsp url。我不知道如何将摘要身份验证与rtsp url一起使用。是否可以在mediaplayer中使用摘要身份验证。任何帮助都将不胜感激 我不知道如何解决RSTP与disgest身份验证混合的问题 但是,使用URLConnection使用HTTP进行摘要身份验证 这个实现可能会对您有所帮助 从理论上讲,在通过身份验证过程后,您可以从流服务器获取数据并进行渲染。它目前已损坏,这在我看来是一个主要问题

我需要一个android应用程序来使用videoview或带有摘要认证的媒体播放器实时传输rtsp url。我不知道如何将摘要身份验证与rtsp url一起使用。是否可以在mediaplayer中使用摘要身份验证。任何帮助都将不胜感激

我不知道如何解决RSTP与disgest身份验证混合的问题

但是,使用URLConnection使用HTTP进行摘要身份验证

这个实现可能会对您有所帮助


从理论上讲,在通过身份验证过程后,您可以从流服务器获取数据并进行渲染。

它目前已损坏,这在我看来是一个主要问题,因为似乎也无法将流直接连接到MediaPlayer(也就是说,使用一些“垫片”)这样做对您来说是可行的,否则可能会奏效——这也将使在某个远程站点通过SSL连接进行RTSP隧道传输成为可能,同时解决“完全开放的视频”问题。)

问题在于,虽然MediaPlayer将在RTSP请求上发出身份验证摘要,但它发送的内容已被破坏——具体来说,在它传回的URI末尾有一个额外的空间:

 D13.Denninger.Net.51291 > 192.168.4.211.rtsp: Flags [P.], cksum 0x069b (correct), seq 166:526, ack 143, win 256, length 360: RTSP, length: 360
    DESCRIBE rtsp://192.168.4.211:554/cam/realmonitor?channel=1&subtype=0 RTSP/1.0
    Accept: application/sdp
    Authorization: Digest nonce="a2732278fba530ed26e2a278a866fa13", username="karl", uri="rtsp://192.168.4.211:554/cam/realmonitor?channel=1&subtype=0 ", response="311b3d4ea28e643ed0d7e61820d43588"
    User-Agent: stagefright/1.2 (Linux;Android 6.0)
    CSeq: 2
传递给Android Mediaplayer代码的实际URI中没有该空格,导致身份验证失败

有一个AOSP错误(我在上面的跟踪中提供了更多细节),但是除非Google修复它,否则唯一的选择是找到其他玩家(1)与RTSP一起工作,(2)正确处理摘要身份验证,或者(2a)可以连接到一个套接字,允许您编写垫片,远程或本地,自己处理摘要工作

我还没有找到一个,但如果有人解决了这个问题,我会喜欢一个指针