【问题标题】:Requesting second video stream in Chrome plays the first video instead在 Chrome 中请求第二个视频流会播放第一个视频
【发布时间】:2018-05-07 16:19:26
【问题描述】:

在 .NET Core 中开发了一个应用程序来流式传输视频内容。适用于 html5 视频元素,206 部分数据包功能(可以正确搜索)。一旦我尝试流式传输新的不同视频,Chrome 仍会播放第一个视频。

我在 IE 或 Firefox 中没有这个问题,坦率地说,去年在 Chrome 中运行良好。我怀疑他们最近在 Chrome 中改变了一些东西?

此外,软、硬或缓存重置页面刷新仍将仅播放第一个视频。只有打开一个新的 chrome 选项卡,它似乎才会“重置”并允许我播放第二个视频,反之亦然。

在播放“不正确”的第一个视频时,如果我直接通过右下角的Chrome HTML5播放器图标下载,它会下载正确的第二个视频,这更奇怪!

这里有更多信息:

  • Chrome 是最新版本 66.0
    • 当我尝试流式传输第二个视频时,来自网络的 206 个部分数据包是第二个视频的数据,因此我可以 确认服务器正在发送第二个视频
    • 如果在播放第一个视频期间发送了第二个 206 数据包(如,只要我不寻找),则不会出现此问题。如果我 不要寻求,我可以毫无问题地在第一个和第二个视频之间切换。一旦请求第二个 206 数据包,Chrome 似乎就一心只在播放期间坚持使用第一个视频。
    • 只有 1 个视频播放器标签,但我可以从列表中挑选/选择视频。我一次只播放一个视频。

【问题讨论】:

    标签: .net google-chrome video stream seek


    【解决方案1】:

    已修复。以下是导致问题的原因:

    我对视频的请求是对 /Download?uid=12345 的 GET,而后者又会重定向到 /GetItem(12345 将存储在 cookie 中)。

    对部分 206 数据包的后续请求也会 GET /GetItem。阅读了一些书,尝试了书中的所有内容,并意识到 Google Chrome 可能需要为每个新请求查看不同的 URL,否则它将播放较旧的缓存流。

    解决方案:

    我将重定向更改为 /GetItem?uid=someRandomNumber(每次调用此操作时都会更改),现在,当我在每个视频之间单击时,视频将正确流式传输。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多