2017-05-19 13 views
0

私はUnity 5.4.4fのプロジェクトにスピーチにテキストを追加しようとしています。私はURLバーに何を言うか入力できるように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秒間音声を再生して停止します。

+0

[この投稿](http://stackoverflow.com/questions/34042928/how-to-stream-downloadplay-an-audio-from-url)が役に立つかもしれません。 –

+0

私はすでにその投稿を見て試しましたが、うまくいきませんでした。 –

答えて

1

使用しているサーバーが.mp3というファイルを生成し、そのファイルが圧縮されているようです。オーディオの再生を終了できない、または1秒間再生しないという問題は、このファイルでのみ発生します。

この修正はまだ文書化されていないようです。GetAudioClipCompressedを使用します。 GetAudioClipGetAudioClipCompressedに置き換え、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(); 
} 
関連する問題