UnityWebRequest:如何解析500错误页面并获取音频文件

根据错误信息和返回的HTML内容,可以看出是服务器返回的错误页面,而不是音频文件。可能是由于服务器内部出现错误导致无法成功生成音频文件。

要获取返回页面内的音频,可以尝试解析HTML内容获取音频的URL,并使用Unity的音频播放器进行播放。

具体实现方式如下:

  1. 使用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', '');
  1. 使用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))来播放音频。

这样就可以尝试获取服务器返回页面内的音频并进行播放了。

UnityWebRequest:如何解析500错误页面并获取音频文件

原文地址: https://www.cveoy.top/t/topic/jCWz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录