2014-10-25 1 views
0

Я пытаюсь загрузить mp3-файл, созданный с помощью google translate. Он отлично работает с языками с латинским шрифтом, но если я, например, попробую тайский, он вообще не работает.Загрузите неязычный файл языка скрипта из google translate

У кого-нибудь есть предложение? Это мой код:

public class MyActivity extends Activity { 

    private Button mButton; 

    private File mOutputFile; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my); 

     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       String uri = Uri.parse("http://translate.google.com/translate_tts") 
         .buildUpon() 
         .appendQueryParameter("tl", "th") 
         .appendQueryParameter("q", "ก") 
         .build().toString(); 

       mOutputFile = new File(getFilesDir(), "sound.mp3"); 

       try { 
        new DefaultHttpClient().execute(new HttpGet(uri)) 
          .getEntity().writeTo(
          new FileOutputStream(mOutputFile)); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     }).start(); 

     mButton = (Button) findViewById(R.id.speak); 
     mButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       play(mOutputFile.getAbsolutePath()); 
      } 
     }); 
    } 

    private void play(String path) { 
     MediaPlayer mediaPlayer = new MediaPlayer(); 

     try { 
      mediaPlayer.setDataSource(path); 
      mediaPlayer.prepare(); 
      mediaPlayer.start(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

ответ

0

Я узнал несколько лет назад и помню, что должен опубликовать свои выводы. Мне нужно добавить еще Parmeter к URL:

.appendQueryParameter ("т.е.", "UTF-8")

Теперь она работает идеально.

Смежные вопросы