Error: Cannot create FMOD::Sound instance for clip "" (FMOD error: End of file unexpectedly reached while trying to read essential data (truncated data?). )UnityEngine.WWW:GetAudioClip (bool,bool,UnityEngine.AudioType)
카테고리 없음 2022. 10. 2. 00:12
https://answers.unity.com/questions/1822383/fmod-error-unsupported-file-or-audio-format-when-s.html
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
//https://foxtrotin.tistory.com/132
public class TTSManager : MonoBehaviour
{
public AudioSource audioSource;
private Coroutine routine;
// Start is called before the first frame update
void Start()
{
audioSource = gameObject.GetComponent<AudioSource>();
}
public void PlaySound(string word)
{
if (this.routine != null) StopCoroutine(this.routine);
this.routine = StartCoroutine(DownloadTheAudio(word));
}
IEnumerator DownloadTheAudio(string word)
{
if (string.IsNullOrEmpty(word)) yield break;
string url =
string.Format("https://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&textlen=32&client=tw-ob&q={0}&tl=En-gb", word);
//using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.OGGVORBIS))
using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.MPEG))
{
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.ConnectionError)
{
Debug.Log(www.error);
}
else
{
/*
* Error: Cannot create FMOD::Sound instance for clip "" (FMOD error: Unsupported file or audio format. )
UnityEngine.Networking.DownloadHandlerAudioClip:GetContent (UnityEngine.Networking.UnityWebRequest)
TTSManager/<DownloadTheAudio>d__4:MoveNext () (at Assets/Scripts/TTSManager.cs:42)
UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr)
*/
try
{
AudioClip myClip = DownloadHandlerAudioClip.GetContent(www);
audioSource.PlayOneShot(myClip);
}
catch (Exception e)
{
Debug.Log(e.Message);
}
}
}
}
}