【问题标题】:VideoView.setVideoURI() not accepting HTTPSVideoView.setVideoURI() 不接受 HTTPS
【发布时间】:2013-02-19 16:47:59
【问题描述】:

this.videoView.setVideoURI(Uri.parse(url+"&ext=.m3u8"));

调用永远不会到达服务器。 使用 http 一切正常。 在所有其他 Android 设备 (!=Google TV) 上,HTTPS 也可以正常工作。

网址格式为:

https://example.com/index.php?videoId=3&sessionId=xxxxxxxxxxxxxxxxxxx&ext=.m3u8

这是一个 PHP 脚本,它将返回一个 m3u8 HLS 文件。但是服务器甚至从未被调用过。

如果我删除 '&ext=.m3u8' 部分,情况相同。

证书不是自签名的。应用程序对 HTTPS 服务器的其他调用成功且没有问题。

编辑:错误也无济于事。 0/0(什么/额外)我正在使用带有 Android GoogleTV 3.2 的 Sony NSZ-GS7

【问题讨论】:

  • 您的问题中的信息很少。你能提供更多细节吗?
  • 根据要求,我添加了更多细节。如果您需要特别的东西,请说出来。我想不出任何更有用的信息。
  • 我很好奇从服务器发送的标头。您可以进行 curl 日志转储并将其添加到您的问题中吗?此外,正如 Les 在他的回答中所述,我听说过 HLS 和 HTTPS 的问题。
  • 服务器永远不会被调用(关于 ssl_access_log),如前所述,因此总之他不会发送任何标头作为响应。

标签: https android-videoview google-tv


【解决方案1】:

上面有两个问题,1)我们的HLS播放器不接受HTTPS,它需要.m3u8在? (即 .php 是不可接受的)

我不确定我是否会接受 Krispy 的建议,除非辅助文件 .m3u8 和 .ts 不使用 https。当然,您可以在您的应用中构建一个驻留在电视上的小型代理,并使用 https 中继 https 请求。

【讨论】:

  • 所以这是最终的?为什么只在 Google TV 上?它适用于 Honeycomb 平板电脑以及 4+ 手持设备。这在任何地方的官方文档中都有提到吗?另外为什么链接可以与“http”一起正常工作?如果“.php 不可接受”我也想到了代理的想法,但这将是一个有趣的解决方法,引入了额外的复杂性,我宁愿不必诉诸。
  • 当前版本的 Google TV 在内部具有与标准 Android 不同的媒体层。它可能会在下一个版本中修复。当时,工程师认为没有人会使用带 HSL 的 Https,他们宁愿使用带旋转密钥的 AES。
  • 我们使用带有旋转密钥的 AES。 TS 文件通过 http 加密和传递。但是我们需要保护通过 https 传递给应用程序的密钥,因为密钥的链接在 m3u8 中是明文的,而 ts 文件的链接是 HLS 标准的。并且每个收听的人都可以轻松地获取密钥并自己解码内容。所以请解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
相关资源
最近更新 更多