Private Sub DownloadAndPlay()
Try
'main delecration'
Dim soundData As Byte()
Dim url As String = String.Format("http://translate.google.com/translate_tts?tl={0}&q={1}", comboBox1.Text.ToLower(), textBox1.Text.Trim())
'create requset'
Dim rq As HttpWebRequest = TryCast(WebRequest.Create(url), HttpWebRequest)
rq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0"
'read response'
Dim response As HttpWebResponse = TryCast(rq.GetResponse(), HttpWebResponse)
Using stream As New BinaryReader(response.GetResponseStream())
soundData = stream.ReadBytes(CInt(response.ContentLength))
stream.Close()
response.Close()
End Using
'create voice file in windows-temprary folder'
Dim tempFilePath As String = CreateTempFile(soundData)
'play temprary-file sound'
PlaySound(tempFilePath)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Function CreateTempFile(data As Byte()) As String
'sound format is mpeg'
Dim soundFileName As String = System.IO.Path.GetTempPath() & Guid.NewGuid().ToString() & ".mpeg"
File.WriteAllBytes(soundFileName, data)
Return soundFileName
End Function
Private Sub PlaySound(file As String)
'initlize player'
Dim player As New WMPLib.WindowsMediaPlayer()
player.settings.volume = 100
player.settings.autoStart = True
AddHandler player.PlayStateChange, AddressOf player_PlayStateChange
player.URL = file
End Sub
Private Sub player_PlayStateChange(NewState As Integer)
Application.DoEvents()
If NewState = CInt(WMPLib.WMPPlayState.wmppsMediaEnded) Then
'release everything'
toolStripProgressBar1.Style = ProgressBarStyle.Blocks
End If
End Sub