三星6S上C#.NET 4.5.1 MVC 5.2.2中的MP3流媒体

本文关键字:6S 中的 MP3 流媒体 MVC NET 三星 | 更新日期: 2023-09-27 18:26:59

我必须使用ReadSpeaker的TTS(文本到语音)SaaS,以便将音频添加到我正在开发的应用程序中。

现在,我们目前使用的基本SCAPI帐户有了一个基本设置,只需设置一个URL并返回我们需要输出的MP3流。因为服务密钥在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>

而通过我们的服务器的完全相同的代码在Samsung 6S上没有与控制器中的流源具有相同的链接。

我已经尝试了几种不同的方式在服务器上流式传输文件,但每次在三星6S(全新的开箱即用无MOD)中都失败了。

这是我用过的代码。

无效控制器:

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控制器而不是手动设置标题:

return new FileStreamResult(ms, response.ContentType);

甚至我在这里找到了一个修改后的FileStreamResult,它允许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上。。。什么都没有,音频标签中的直接服务链接工作正常吗?

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

三星6S上C#.NET 4.5.1 MVC 5.2.2中的MP3流媒体

编码似乎很好。

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