gpt4 book ai didi

c# - 三星 6S 上 C# .NET 4.5.1 MVC 5.2.2 中的 MP3 流式传输

转载 作者:可可西里 更新时间:2023-11-01 18:48:22 26 4
gpt4 key购买 nike

我必须使用来自 ReadSpeaker 的 TTS(文字朗读)SaaS为了向我正在开发的应用程序添加音频。

现在我们当前使用的基本 SCAPI 帐户具有基本设置,您只需设置一个 URL 并获取我们需要输出的 MP3 流。因为服务 key 在 URL 中,我们不能在前端使用它,所以我们需要通过我们的服务器流式传输文件。

一切正常,直到我在三星 6S 上测试开发代码。它根本没有播放,但是服务自己的链接有效,即有效:

<audio controls>
<source
src="http://tts.readspeaker.com/a/speak?key=[ServiceKey]&lang=en_uk&voice=Female01&audioformat=mp3&volume=200&text=test text 2"
type="audio/mp3">
Your browser does not support the audio element.
</audio>

虽然通过我们的服务器的完全相同的代码不会在三星 6S 上与 Controller 中的流源具有相同的链接。

我已经尝试过几种不同的方式在服务器上传输文件,但每次在三星 6S(全新开箱即用,无模组)中都表现平平。

这是我用过的代码。

虚空 Controller :

string url = "http://tts.readspeaker.com/a/speak?key=[ServiceKey]&lang=en_uk&voice=Female01&audioformat=mp3&volume=200&text=test text 2";

HttpWebRequest HttpWRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)HttpWRequest.GetResponse();

Stream stream = response.GetResponseStream();

MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);

Response.AddHeader("Content-Type", response.ContentType);
Response.AddHeader("Content-Length", response.ContentLength.ToString());
Response.AddHeader("Access-Control-Allow-Origin", "*");
Response.AddHeader("Connection", "close");

Response.Flush();

audioData = ms.ToArray();
Response.BinaryWrite(audioData);

Response.End();

标准 FileStreamResult,我使用上面代码的 MemoryStream 并通过它发送,即使用 FileStreamResult Controller 而不是手动设置 header :

return new FileStreamResult(ms, response.ContentType);

even a modified FileStreamResult I found here这允许 URL 的实际流式传输,而无需将其下载到服务器。

我也用这个方法从 ReadSpeaker 获取字节数据:

byte[] audioData;
using (WebClient client = new WebClient())
{
audioData = client.DownloadData("http://tts.readspeaker.com/a/speak?key=[ServiceKey]&lang=en_uk&voice=Female01&audioformat=mp3&volume=200&text=test text 2");
}

然后有无数种输出它的方法,但结果总是一样的,在其他所有东西上都能正常工作(即使是 IE7,没有音频标签,但仍然如此)但在三星 6S 上就不行。

我不知道我在这里一定遗漏了一些非常基本的东西,因为我尝试过的所有东西在其他所有东西上都工作得很好,但在三星 6S 上什么都没有。即使在 LG G4 等其他高端 Android 上也能正常工作,但在 6S 上……没什么,在音频标签中喷射直接服务链接就可以正常工作吗?

所以我知道我一定做错了什么,有什么想法吗?

最佳答案

编码似乎没问题。

三星有自己的 TTS,这可能会干扰您自己的。你可能想玩玩它,要么卸载它要么启用它。 http://www.samsung.com/in/support/skp/htg/16082

关于c# - 三星 6S 上 C# .NET 4.5.1 MVC 5.2.2 中的 MP3 流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34298858/

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