HTML5 音频 - 进度栏/播放栏不适用于 OGG 音频文件/206 部分内容问题

2024-01-13

我有 OGG 格式的音频文件并将其嵌入:

<div class="audio-container">
    <audio controls>
        <source src="/u/audiofile.ogg">
    </audio>
</div>

我使用 Chrome 播放嵌入文件(Internet Explorer/Edge 也有同样的问题)。

如果文件长约 3 秒,进度条/播放栏将按预期出现在开头:

如果文件较长,例如25秒,进度条/播放条不起作用,这意味着:点击播放条不会跳转到音频时间:

然而,22秒后(结束前3秒),播放栏突然出现,用户可以通过单击播放栏来跳转音频时间。

正如我们在这里看到的,只有播放完整个 OGG 文件后(不仅加载,而且播放)206 partial content请求突然有效。

当然,我希望播放栏显示整个音频长度,并且从一开始就可以进行导航单击。

如何实现这一目标?


Update:

我尝试过 Javascript 插件(绿色音频播放器)。播放器显示如下:

Infinity出现。所以我猜测文件长度不是由服务器发送的。这很奇怪,因为文件是直接链接的(文件系统位置)。

响应标头如下所示(对于 25 秒文件):

我的 Apache 服务器回复状态代码200对于第一次加载。当点击视频播放栏时,它会执行206 Partial content要求如所须 https://developer.mozilla.org/en-US/docs/Web/HTTP/Configuring_servers_for_Ogg_media。但是,当单击 Chrome 中的音频播放栏时,不会发生这种情况。没有发送请求。

相反,它发送Accept-Ranges: bytes这应该能够通过文件进行搜索:

Accept-Ranges 标头指示服务器接受对资源的范围请求。远程 Web 服务器使用的单位是字节。该标头告诉我们服务器支持恢复下载或下载文件。

我认为解决这个问题的一种方法是always提供 OGG 文件206 Partial content,已经有了第一个请求。但我还不知道如何在 Apache 服务器中启用此功能。


Notes:

我读到 Apache 确实如此206默认情况下,但如果启用缓存/GZIP,则不会。所以我禁用了缓存htaccess (SetEnvIfNoCase Request_URI . (?:mp4|mp3|ogg|webm)$ no-gzip dont-vary)但它仍然不起作用。


Update:

我尝试使用另一个 OGG 文件(test.ogg)。这个可以用游戏杆玩耍和跳跃,没有任何问题!

我正在使用的 OGG 文件是通过在浏览器端记录它们来创建的(Javascriptnew MediaRecorder(stream);),然后发送到服务器并由PHP存储为OGG文件。

查看示例文件的文件属性:

查看test.ogg文件的文件属性:

显然,有问题的文件缺少元数据!

跟进:如何在 PHP 中将 MediaRecorder 流保存到 OGG 文件?包括元数据 https://stackoverflow.com/questions/67041475/how-to-save-mediarecorder-stream-to-ogg-file-in-php-including-metadata


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 音频 - 进度栏/播放栏不适用于 OGG 音频文件/206 部分内容问题 的相关文章

  • 为什么网格项目不居中?

    由于某种原因 两个输入范围使网格中的前两项偏离中心 我假设这是因为它们的影子 DOM 样式 事实真的是这样吗 有谁知道为什么范围使项目 A 和 B 偏离中心 这是一个代码笔 https codepen io tOkyO1 pen QOeKL
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • 在按钮之间添加空间?

    嗨 我这里有一个代码 除了一件事之外 一切都很完美 代码中每个按钮之间没有空格 我尝试过 margin 但不幸的是它是一个无序列表 所以我有点困惑 我将添加或替换什么以在两个按钮之间留出空间 帮助
  • Outlook 2013 渲染问题:嵌套表格截断相邻文本

    在开发 html 电子邮件通讯时 我经常使用类似于以下的结构 table width 244 border 0 cellpadding 0 cellspacing 0 tr td table border 0 align left tbod
  • 如何为 TBODY 应用垂直滚动条

    我的表中有 4 列和 5 行数据 我必须为 TBODY 应用垂直滚动条 TH 标题内容不应滚动 我对场景进行了编码 并且在我将滚动类应用于 TBODY 之前它工作正常 一旦我将滚动样式类应用于 TBODY 它就会破坏之前的对齐方式 任何人都
  • AngularJS 在指令运行之前通过 AJAX 检索数据

    我正在使用 AngularUIuiMap http angular ui github com directives map实例化谷歌地图的指令 uiMap 指令非常适合处理硬编码数据 mapOptions and myMarkers 但是
  • 如何在没有 AM/PM 的情况下使用 datetime-local?

    我想使用以下代码
  • 从网页安装 URI 方案的服务处理程序

    从 Chrome 访问 Google Mail 或 Google Calendar 时 地址栏中会出现小图标 允许为 URI 方案安装自定义服务处理程序 图中用红色方块标记 图标的工具提示是 This page wants to insta
  • 输入类型=图像 - onclick(),将触发其事件,但在 jquery 中的函数上表现不佳

    我认为这可能是两篇文章 2个问题 所以如果你对此发表评论 我会将它们分开 主要问题实际上是 我怎样才能为按钮设置图像背景 简单且正确 我想现在我可以确定这些事实了 因为我在将图像设置为按钮背景时遇到了 小 问题 我想 好吧 如果很难设置的话
  • 我的 CSS 未在 Internet Explorer 11 和 Firefox 中加载!仅适用于 Chrome

    我正在创建一个简单的网页 我的 CSS 只能在 Chrome 中使用 它在 Firefox 和 IE11 中都不起作用 这是我的 HTML h1 b u Adding a new Visitor u b h1 br div class wr
  • 设置浏览器窗口最小化的最小尺寸限制?

    有没有办法在所有浏览器中手动设置浏览器窗口的最小尺寸 你可以试试 body min width 600px 一旦视口小于 600 像素 您将得到一个水平滚动条 这仅适用于支持 min width CSS 属性的现代浏览器 我认为不可能限制用
  • JSF 2.1 中的 HTML 4 <按钮>

    我想使用以下命令 The JSF
  • 如何禁用 Chrome 自动完成功能?

    我们想要禁用自动完成在 Chrome 浏览器中的 React JavaScript 应用程序中 我们尝试了互联网上提供的一系列解决方案 但没有任何效果 autoComplete off不可靠 其他方法也不可靠 目前这对我们来说非常重要 所以
  • 动态表单标签宽度的 CSS

    我目前正在重构我们的表单控制器之一 以便我们可以将其用于面向公众的网站 目前它正在为表单生成表格布局 但我正在尝试使用 CSS 表单来完成它 我正在尝试重现看起来像这样的东西http www stylephreak com uploads
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • 防止浮动换行,直到元素达到最小宽度

    我有可变宽度的 HTML 布局 内容左侧有一个固定宽度的菜单 div 可变宽度 由 css max width 和 min width 设置 对于非常窄的浏览器窗口 我希望内容包裹在菜单下方 我目前通过设置来实现这一点float left在
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • 悬停时为 SVG 制作动画

    我正在尝试在悬停时为 SVG 文件设置动画 默认情况下 它可以使用 svg 函数实现出色的动画效果 例如
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4

随机推荐