这是我的文本到语音服务部分,我获取我的数据,这工作正常,现在我收到此错误" java.io.FileNotFoundException:http://ipv4.google.com/sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Den-AU%26q%3Dhello%2Bhow%2Bare%2Byou%2Btoday%2B&q=CGMSBMpY7fgYhL_crQUiGQDxp4NL6gmQZhZKyI3fztC8pj7G18P2vhg"当我在浏览器上打开相同内容时,我得到了这个,如果我正在写字符,我将获得所需数据。这是一个常见问题或谷歌已经改变了一些事情,请帮助
// data
{
// Log.e("JUSTLOGGINGURL", text);
text = URLEncoder.encode(text, "UTF-8");
String voiceUrl = "http://translate.google.com/translate_tts?tl="
+ lang_to + "&q=" + text;
// Log.e("JUSTLOGGINGURL", voiceUrl);
HttpURLConnection con = null;
InputStream is = null;
try {
URL url = new URL(voiceUrl);
con = (HttpURLConnection) url.openConnection();
con.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
// con.setRequestProperty(
// "User-Agent",
// "Mozilla/5.0 (Linux; Android 4.0.0; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36");
con.setRequestMethod("GET");
con.setDoInput(true);
con.connect();
is = con.getInputStream();
} catch (IOException e) {
e.printStackTrace();
is = null;
return is;
}
return is;
答案 0 :(得分:4)
你很聪明;)
但是你必须记住,当你使用来自页面源的链接时,它会改变。 谷歌只是阻止你,因为你提出了很多要求或类似的东西。
你有3个解决方案:
使用Google Translate API并付费 - Here you have Pricing。
使用另一个免费用于商业用途的API - 这里有一些free API。但如果你想要更多,你必须环顾谷歌。
在Android (TextToSpeech)中使用Build in TTS服务 - 你必须知道它有点小错误。