使用QT下载二进制文件
我是 QT 编程的新手,我的工具之一需要一个功能来使用谷歌翻译 api 获取文本行的音频翻译。最简单的解决方案是使用特殊的 URL Google(http://translate.google.com/translate_tts?tl=en&q="...我的字符串...”)。 使用 wget 工具 a 通过这种方式做到了:
cd google_has_you && wget -m -k -U "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/20121223 Ubuntu/9.25 (jaunty) Firefox/3.8" "http://translate.google.com/translate_tts?tl=en&q=in+soviet+russia+games+plays+you"
然后我将下载的文件重命名为 test.mp3 以检查音频翻译
teddy@Desktop:~/google_has_you/translate.google.com$ mv * test.mp3
我的问题是如何使用 Qt 执行此操作,即如何从 url 下载二进制文件(mp3): < a href="http://translate.google.com/translate_tts?tl=en&q=" rel="nofollow">http://translate.google.com/translate_tts?tl=en&q=" + 我的文本,然后使用 Phonon 播放下载的内容。
I newbie in QT programming and one of my tools needs a feature to get the audio translation of a text line using google translate api.The easiest solution was to use a special URL Google(http://translate.google.com/translate_tts?tl=en&q="...my string...").
Using wget tool a did that by this way :
cd google_has_you && wget -m -k -U "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/20121223 Ubuntu/9.25 (jaunty) Firefox/3.8" "http://translate.google.com/translate_tts?tl=en&q=in+soviet+russia+games+plays+you"
and then i renamed downloaded file to test.mp3 to check audio translation
teddy@Desktop:~/google_has_you/translate.google.com$ mv * test.mp3
My question is how to do it with Qt,that is, how to download a binary file (mp3) from url : http://translate.google.com/translate_tts?tl=en&q=" + my text, and then to play downloaded using Phonon.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 QNetworkAccessManager 下载文件,然后通过将本地文件的路径传递给 Phonon 媒体源来播放它,或者让 Phonon 流式传输它。
代码片段(url 是 QUrl)(堆栈上的所有内容,因为我从 main() 复制了它):
You can either use QNetworkAccessManager to download the file and then play it by passing the path to the local file to the Phonon media source, or let Phonon stream it.
A code snippet (url is a QUrl) (Everything on the stack because I copied it from a main()):