gpt4 book ai didi

javascript - ASP Net Core FileContentResult音频文件到Safari

转载 作者:行者123 更新时间:2023-12-03 01:39:46 24 4
gpt4 key购买 nike

在Safari(11)中,可以通过html或javascript将静态音频文件加载到src中,尽管存在播放前要求用户输入的限制。

例如

<audio src="static.mp3">

要么
var audio = new Audio('static.mp3');
audio.play();

工作正常。
但是,我需要从数据库加载音频文件,因此我正在使用类似以下的 Controller 操作:
public FileContentResult GetAudio(int audioId)
{
if (!DbContext.Audios.Any(a => a.Id == audioId))
{
return null;
}

var audio = DbContext.Audios.Single(a => a.Id == audioId);
return File(audio.File, "audio/mp3");
}

并设置为
<audio src="getaudio?audioId=1">

要么
var audio = new Audio('getaudio?audioId=1');

它不能在MacOS(Safari)或iOS上播放,但可以在Chrome和Edge(在iOS上除外)上正常运行。根据配置方式的不同,我会得到某种形式的 Unhandled Promise错误。我也尝试过将加载到 Web Audio缓冲区中,并具有完全相同的成功和失败信息。

有没有人有解决方案或解决方法来将我的音频文件加载到Safari?

编辑

好的,因此在进一步测试中,我发现文件是通过 Action 还是静态文件发送的,与其说是最初的保存方式,不如说是将文件保存到数据库中的方式。我现在正在努力找出为什么我保存(另存为 byte[])然后重新加载的文件无法被Safari识别的原因。

最佳答案

好的,事实证明,我正在使用MediaRecorder进行录制,这是Chrome和其他一些浏览器中的一项相当新的功能。我告诉它另存为什么格式都没有关系,因为仅支持webm。猜猜谁不支持webm格式?苹果浏览器。不管我在文件上使用了什么错误的扩展名,任何其他浏览器都可以正常使用它。

当我发现从webm转换为m4a时,我将在此处添加它。我确定那里有一些解决方案。

关于javascript - ASP Net Core FileContentResult音频文件到Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48331290/

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