强制 Android 使用 RTSP/AVP/TCP 交错

Posted

技术标签:

【中文标题】强制 Android 使用 RTSP/AVP/TCP 交错【英文标题】:Forcing Android to use RTSP/AVP/TCP interleaved 【发布时间】:2013-02-23 16:11:36 【问题描述】:

我在 Galaxy S3 上使用 android 4.1.2。目前android mediaplayer总是尝试使用RTSP UDP (RTP/AVP/UDP)方式连接RTSP服务器。

如果 Android MediaPlayer 未在其 UDP 端口上接收到数据。它会超时,然后尝试 RTSP TCP 交错 (RTP/AVP/TCP)。这很好,但它引入了 10 秒左右的延迟。我想避免这种延迟,并强制 Android MediaPlayer 始终对所有或特定 URL 使用 RTSP TCP 交错 (RTP/AVP/TCP)。

我尝试了Here 中给出的建议,将 461 或 400 错误响应代码发送到 SETUP 请求。但似乎媒体播放器并不关心响应,并为两个轨道发送 SETUP 命令,然后就挂起连接。

我该如何解决这个问题?

【问题讨论】:

你解决过这个问题吗? 为什么不自己初始化一个 UDP 套接字连接,并相应地处理流。这将避免 Android 为您处理它 我也有同样的问题,你解决了吗? 不是这方面的专家,但如果您的 api 级别为 16 或更高,ExoPlayer (developer.android.com/guide/topics/media/exoplayer.html) 可能是替代方案? ExoPlayer 不支持 RTSP:github.com/google/ExoPlayer/issues/55 【参考方案1】:

我使用的是 VLC 而不是原生的。 请阅读 Living555 源代码。 您可以在 SETUP 请求中指定 Transport: RAW/RAW/UDP 字段以选择要使用的协议。

【讨论】:

【参考方案2】:

我可能错了,但 AFAIK android 媒体播放器不支持 RTP over TCP。

【讨论】:

目前还没有;类似问题***.com/questions/20676092/…

以上是关于强制 Android 使用 RTSP/AVP/TCP 交错的主要内容,如果未能解决你的问题,请参考以下文章

android 怎么调用强制关闭

Android强制HDMI音频

强制android使用方形启动器图标

Android:强制数据通过无线电与 WiFi 发送

在循环中使用 setBackgroundColor 和 setImageDrawable 时 Android 强制关闭 [关闭]

如何让 Android 系统强制所有 apk 使用 LANDSCAPE?