UnityWebRequest:如何解析500错误页面并获取音频文件
UnityWebRequest:如何解析500错误页面并获取音频文件
根据错误信息和返回的HTML内容,可以看出是服务器返回的错误页面,而不是音频文件。可能是由于服务器内部出现错误导致无法成功生成音频文件。
要获取返回页面内的音频,可以尝试解析HTML内容获取音频的URL,并使用Unity的音频播放器进行播放。
具体实现方式如下:
- 使用HtmlAgilityPack库解析HTML内容,获取音频URL。
using HtmlAgilityPack;
...
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(speechRequest.downloadHandler.text);
HtmlNode videoNode = htmlDoc.DocumentNode.SelectSingleNode('//video/source');
string audioUrl = videoNode.GetAttributeValue('src', '');
- 使用Unity的音频播放器进行播放。
using UnityEngine;
...
IEnumerator PlayAudio(string audioUrl)
{
using (UnityWebRequest audioRequest = UnityWebRequestMultimedia.GetAudioClip(audioUrl, AudioType.WAV))
{
yield return audioRequest.SendWebRequest();
if (audioRequest.result == UnityWebRequest.Result.Success)
{
AudioClip audioClip = DownloadHandlerAudioClip.GetContent(audioRequest);
AudioSource.PlayClipAtPoint(audioClip, Vector3.zero);
}
else
{
Debug.LogError('Failed to download audio: ' + audioRequest.error);
}
}
}
注意:需要将上述代码放到GetVoice()方法中,并调用StartCoroutine(PlayAudio(audioUrl))来播放音频。
这样就可以尝试获取服务器返回页面内的音频并进行播放了。
原文地址: https://www.cveoy.top/t/topic/jCWz 著作权归作者所有。请勿转载和采集!