我正在尝试在 Unity 5.4.4f 中将文本添加到我的项目中,并且我使用的 API 允许我在 url 栏中输入要说的内容,然后它返回一个音频文件,我下载并播放该文件。
Regex rgx = new Regex("\\s+");
string result = rgx.Replace(timeLeft + " minutes left", "+");
string url = "http://api.voicerss.org/?key=MY_API_KEY&hl=en-us&src=" + result;
Debug.Log(url);
WWW audioWWW = new WWW(url);
yield return audioWWW;
AudioClip audClip = audioWWW.GetAudioClip(false, false, AudioType.MPEG);
audSrc.clip = audClip;
audSrc.Play();
它播放音频 1 秒钟然后停止。
您正在使用的服务器生成.mp3文件,该文件似乎已被压缩。无法完成播放音频或仅播放一秒钟的问题仅发生在此文件中。
修复方法是使用GetAudioClipCompressed
似乎尚未记录的内容。只需更换GetAudioClip
与GetAudioClipCompressed
和传递2个参数给它。
public static AudioClip GetAudioClipCompressed(this WWW www, bool threeD, AudioType audioType);
这样做后,音频就可以播放了。这是完整代码的样子。请注意,我删除了 API 密钥。你可以把它放在你自己的身上。
IEnumerator Start()
{
Regex rgx = new Regex("\\s+");
string result = rgx.Replace(timeLeft + " minutes left", "+");
string url = "http://api.voicerss.org/?key=MY_API_KEY&hl=en-us&src=" + result;
Debug.Log(url);
WWW audioWWW = new WWW(url);
yield return audioWWW;
AudioClip audClip = audioWWW.GetAudioClipCompressed(false, AudioType.MPEG);
audSrc.clip = audClip;
audSrc.Play();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句