javascript - 如何在不提供绝对路径的情况下流式传输音频文件

标签 javascript php html audio

是否可以在不提供文件的完整路径的情况下流式传输音频文件。

例如,每当我们尝试使用 HTML5 音频标签或使用 javascript 播放 mp3 文件时,我必须像这样提供 mp3 文件的完整路径

<audio controls>
  <source src="http://example.com/file/hello_name.mp3" type="audio/mpeg">
</audio>

所以,我认为我们可以提供 mp3 文件的 id 而不是文件的 complete path 应该是这样的:

<audio controls>
  <source src="http://example.com/stream.php?file_id=111" type="audio/mpeg">
</audio>

最佳答案

您的 stream.php 文件将如下所示:

<?php
    // Say you hava a table "file_paths" with two columns file_id and file_path
    $sql = $pdo->prepare("SELECT FROM file_paths WHERE file_id = ?");
    $sql->bindValue(1, $_GET['file_id'], PDO::PARAM_INT);
    $sql->execute();
    $fetch = $sql->fetchObject();

    // retrieve file path using its id
    $path = $fetch->file_path;
    header("Location: " . $path);
?>

然后在目标页面上,通过将 file_id 传递给 stream.php 来添加播放器,如下所示:

<audio controls>
  <source src="stream.php?file_id=123" type="audio/mpeg">
</audio>

关于javascript - 如何在不提供绝对路径的情况下流式传输音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33651883/

相关文章:

javascript - 使用 React-Router,如何在不触发重新渲染的情况下更新 URL?

javascript - 如何将当前播放的歌曲保存在 cookie 中?

php - wordpress seo 友好 url 无法识别模板

Javascript 幻灯片放映使页面宽度变大

javascript - 二维数组的位置排序

javascript - 如何在 Chrome 扩展程序中打开新选项卡 (Manifest v2)

php - Directadmin + Nginx + php fpm + 位置 : File not found

javascript - 405 未找到方法。在本地主机上

javascript - PhpStorm:用PHP,HTML和JS编写ctp文件

html - NetSuite 高级 PDF 外语