存储音频路径并在网页上播放

Posted

技术标签:

【中文标题】存储音频路径并在网页上播放【英文标题】:Storing audio paths and playing it on web page 【发布时间】:2015-06-29 09:00:55 【问题描述】:

我正在处理的内容涉及要在网页上播放的许多短音频片段。 我知道播放音频文件的最佳方式是使用音频标签,并将音频文件存储在本地存储中并调用数据库中的路径。

我的主要问题是如何将音频文件路径存储在数据库列中,我必须做什么才能播放文件?

另外,我不确定该文件路径与数据库的交互是如何工作的,谁能启发我?

这也是因为我正在做一些类似拼写蜜蜂的事情,其中​​会有一个播放按钮或用户可以单击的文本,并且会听到问题旁边的声音,然后他们必须输入他们的回答。

现在对我来说重要的是让音频功能正常工作。

我们将不胜感激任何输入。

【问题讨论】:

您可以创建 2 个表。一种带有设置,存储音频文件文件夹的路径,另一种带有音频文件的名称。当您在 php 文件中进行查询时,您将连接音频文件名的路径并将它们放在音频标签中。您应该自己尝试并在遇到困难的地方发布代码。 嘿,在你开始工作之前,请记住NEVER NEVER NEVER store paths into DB, just store file names in DB,因为每当你将项目移动到任何其他位置/服务器时,你都会遇到很多问题 @Allkin 对不起,我是初学者,刚刚开始,您可以帮助提供一些我可以使用的代码吗?非常感谢。 【参考方案1】:

我将发布一个简单的示例,然后您可以将其扩展到您需要的任何内容。 首先,您需要将音频文件复制到公共 html 目录中的文件夹中,比如说音频。 之后,您需要创建一个数据库并打开与它的连接。 您可以在PHP Documentation 中了解它。 这是一个连接到数据库的 php 文件的示例,它存储文件名,然后获取它。 数据库结构示例:

id | audio_name 1 audio1.mp3

<?php
$con = new mysqli("localhost", "user", "password", "database");
if ($con->connect_errno) 
    echo "Failed to connect to MySQL: (" . $con->connect_errno . ") " . $con->connect_error;


//We define a constant with the path to audio 
define('PATH','audio/');

//We store the audio file name in database
$result = $con->query("INSERT INTO table(audio_name) VALUES('audio1.mp3')");

//To get values from database you can do this
$audiomp3 = $con->query("SELECT audio_name FROM table WHERE audio_name = 'audio1.mp3'")->fetch_object()->audio_name;

//Full path to audio file
$audiomp3 = PATH . $audiomp3;

//And we create a audio element
$element = "";
$element .= "<audio controls>";
$element .= "<source src='$audiomp3' type='audio/ogg'>";
$element .= "Your browser does not support the audio element.";
$element .= "</audio>";

//Displaying audio element
echo $element;

记住这是一个基本示例!

【讨论】:

以上是关于存储音频路径并在网页上播放的主要内容,如果未能解决你的问题,请参考以下文章

在网页上播放/暂停/倒带 mp3 音频

我目前无法停止通过 ajax 调用在服务网页上播放音频

从视频文件中提取音频并在 OpenAL 中播放

网页音频API 第一章

单击网页上的链接时在服务器上执行音频播放器

AVPlayer 不播放音频