gpt4 book ai didi

php - 在 PHP 上将 Base 64 转换为音频 Mp3 格式

转载 作者:行者123 更新时间:2023-12-01 05:35:53 28 4
gpt4 key购买 nike

我有一个“音频”标签,其中的脚本(实际上是一个插件)接收它并将其保存为 base64。这工作正常。

我正在尝试更改脚本以将 base64 发送到服务器并将其转换为 mp3 并在页面中显示录制的音频。

这就是我到目前为止所做的。通过ajax保存文件的脚本:

$(document).on("click", "#download:not(.disabled)", function(){

Fr.voice.export(function(url){
//$("<a href='"+url+"' download='MyRecording.wav'></a>")[0].click();
var src = url;
$.ajax({
url: $("#base_url").val() + "ajax/saveRecordedVoice",
type: "POST",
data: {"record_src": src},
success: function(result){
alert(result);
}

});
}, "base64");
restore();
});

用于转换和保存文件的 PHP 脚本:

public function saveRecordedVoice()
{

$audio = $_POST['record_src'];
$decoded = base64_decode($audio);
$file_location = "assets/records/recorded_audio.mp3";

$success = file_put_contents($file_location, $decoded);

if($success){
echo "File Saved";
}else{
echo "Uh-uh!";
}

}

该文件已在我的服务器中成功保存为 .mp3,但当我尝试手动播放时,媒体播放器显示:

enter image description here

最佳答案

如果不知道您使用哪个插件来捕获音频,就很难真正确定。但是我假设:

//$("<a href='"+url+"' download='MyRecording.wav'></a>")[0].click();

实际上以前有效,这意味着您接收到的任何音频都是直达声音。

然而,Mp3 是一种编码格式,因此,您的媒体播放器可能会失败,试图解码未编码的音频。

尝试更改输出结尾:

$file_location = "assets/records/recorded_audio.wav";

看看这些文件是否会为您播放。

如果这不能解决问题,您应该输出作为数据发送的“url”,看看它是否会发送不需要的标记/ header 。

关于php - 在 PHP 上将 Base 64 转换为音频 Mp3 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147185/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com