0

私は Android で問題を提起しましたが、何の回答も得られませんでしたが、iPhone プラットフォームで回答のある同様の問題を見つけましたが、これを Java コードに変換する方法がわかりません。両方の言語に精通している方は、ぜひお試しください。

NSString* userAgent = @"Mozilla/5.0";

NSURL *url = [NSURL URLWithString:[@"http://www.translate.google.com/translate_tts?tl=el&q=Καλημέρα" 
                        stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease];

[request setValue:userAgent forHTTPHeaderField:@"User-Agent"];

NSURLResponse* response = nil;
NSError* error = nil;
NSData* data = [NSURLConnection sendSynchronousRequest:request
                                 returningResponse:&response
                                             error:&error];


[data writeToFile:@"/var/tmp/tts.mp3" atomically:YES];
4

2 に答える 2

1

わかりました、(私が理解しているように)

彼は、Web 形式のファイルをダウンロードして、それを i-phone のローカル ストレージに保存しようとしています。

アンドロイドでこのコードを試してください、

try {
        URL url = new URL("http://www.translate.google.com/translate_tts?tl=el&q=Καλημέρα");
        URLConnection connection = url.openConnection();
        connection.connect();
        // this will be useful so that you can show a typical 0-100% progress bar
        int fileLength = connection.getContentLength();

        // download the file
        InputStream input = new BufferedInputStream(url.openStream());
        OutputStream output = new FileOutputStream("/sdcard/tts.mp3");

        byte data[] = new byte[1024];
       int count;
        while ((count = input.read(data)) != -1) {
            output.write(data, 0, count);
        }
       output.flush();
        output.close();
        input.close();
    } catch (Exception e) {
    }

また、次のように、Android Manifest.xml ファイルで Use-Permission について言及します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

これで、ダウンロードした mp3 ファイルが外部ストレージに保存されます。

于 2012-04-20T12:24:52.273 に答える
0
HttpClient httpclient = new DefaultHttpClient();

HttpGet httpget = new HttpGet("http://www.translate.google.com/translate_tts?tl=el&q=Καλημέρα");

HttpResponse response = httpclient.execute(httpget);

次に、応答からファイルを取得しますか? 申し訳ありませんが、私の atm には IDE がありません。

たぶん、このようなものですか?

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(response.getEntity().getContent());

mp3ファイルを解析する方法がわかりませんか?

のようなものはどうですか

InputStream is = response.getEnitity().getContent();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
   baf.append((byte) current);
}

FileOutputStream fos = new FileOutputStream(file);
fos.write(baf.toByteArray());
fos.close();
于 2012-04-20T12:16:05.403 に答える