【发布时间】:2017-03-01 15:39:44
【问题描述】:
我有两个问题,一个是我无法循环播放歌曲(我在 HTML 中的音频标签中尝试过),两个是:无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH。
杂项信息: 这些文件托管在 cPanel 上。 我在音频标签所在的 HTML 文件中还有其他 javascript 文件,有时当我重新加载它时,错误与 javascript 有问题。 CSS、PHP 和 JS 文件也在同一个 HTML 文件中被调用(如果重要的话) 此外,所有内容都通过 HTTPS 传输。
我想要完成的是使用 PHP 脚本在网页上播放音乐。该脚本从目录中提取 mp3、mp4 和 m4a 文件,而无需为了方便而绘制数组。我的朋友为我制作了这个 PHP 脚本,但我们似乎无法找出问题所在,所以我在这里寻求帮助,因为我还没有完全理解 PHP。
HTML 代码:
<audio autoplay="" loop="" preload="auto" id="music" src="https://example.com/audio/music.php">
<script type="text/javascript">
var audio = document.currentScript.parentElement;
audio.volume = 0.1;
</script>
</audio>
PHP 文件:
<?php
$list = new RecursiveDirectoryIterator(__DIR__);
$filetypes = array('mp3', 'mp4', 'm4a');
$files = array();
foreach(new RecursiveIteratorIterator($list) as $file) {
if (in_array(strtolower(array_pop(explode('.', $file))), $filetypes))
$files[] = $file;
}
$rand = $files[array_rand($files, 1)];
header('Content-Type:'.mime_content_type($rand));
header('Content-Disposition: filename="'.basename($rand).'"');
header('Content-length: '.filesize($rand));
readfile($rand);
?>
我在 Firefox 中对此进行了测试,但没有收到此错误: (加载资源失败:net::ERR_CONTENT_LENGTH_MISMATCH) 并在我的 example.com/audio/music.php 文件中说这是问题所在。 但音频也不会循环播放。 我的朋友也在 Brave 和他的 Chrome 版本中对此进行了测试,但在我的 Chrome 版本中我遇到了这个问题。
我已经问了几个人,他们似乎无法弄清楚为什么这不起作用。我在这里查看了一些关于类似问题的帖子,但似乎无法根据他们的建议解决它。
我在 PHP 方面有点菜鸟,所以如果你能帮助指导我如何修复它,比如在哪里添加、替换或删除代码,请告诉我在哪里。
感谢您抽出宝贵的时间,希望我们可以解决这个问题。
【问题讨论】:
标签: javascript php html audio