2014-09-26 4 views
0

HTTP 오디오 다운로드 프로세스가있는 게시 된 Android 애플리케이션이 있습니다.Android에서 오디오 파일을 다운로드하는 방법

이 처리가 오늘까지 작동합니다.

내 코드에 무슨 문제가 있습니까?

final URL downloadFileUrl = new URL(mPerformanceSong.getPreviewUrl()); 
final HttpURLConnection httpURLConnection = (HttpURLConnection) downloadFileUrl.openConnection(); 
httpURLConnection.setRequestMethod("GET"); 
httpURLConnection.setDoOutput(true); 
httpURLConnection.setConnectTimeout(10000); 
httpURLConnection.setReadTimeout(10000); 
httpURLConnection.connect(); 

mTrackDownloadFile = new File(RecordPerformance.this.getCacheDir(), "mediafile"); 
mTrackDownloadFile.createNewFile(); 
final FileOutputStream fileOutputStream = new FileOutputStream(mTrackDownloadFile); 
final byte buffer[] = new byte[16 * 1024]; 

final InputStream inputStream = httpURLConnection.getInputStream(); 

int len1 = 0; 
while ((len1 = inputStream.read(buffer)) > 0) { 
     fileOutputStream.write(buffer, 0, len1); 
} 

fileOutputStream.flush(); 
fileOutputStream.close(); 

다운로드 한 파일의 내용이 gzip 인 것 같습니다.

이것은 내 inputStream을 GZIPInputStream에 랩핑해야한다는 뜻입니까?

예를 들어 다운로드 URL 내가 실제로 아무것도를 다운로드있어 놀랐어요

http://www.amazon.com/gp/dmusic/get_sample_url.html?ASIN=B008TMSNMI 

답변

1

- 당신은 그것이 확실? 당신이 게시 한

HTTP URL :

https://d28julafmv4ekl.cloudfront.net/... 

HttpUrlConnection계획을 통해 리디렉션을 따르지 않습니다 (:

http://www.amazon.com/gp/dmusic/get_sample_url.html?ASIN=B008TMSNMI 

는 현재 HTTPS CloudFront를 주소로 리디렉션되어 즉 http에서 https로).

그래서 당신은 HTTPS에 * .amazon.com URL을 변경하면, 아마도 그것은 문제 ... 내가 그것을 작동하는 데 사용 절대적으로 확신

+0

를 해결하는 것입니다. 그리고 지금 그것은 doesnt한다. – Hector

+1

다른 체계로 리디렉션하는 데 절대적으로 사용됩니까? –

+0

아니요. 무슨 일이 일어 났는지 확실하지 않습니다. 지금까지 조사 할 필요가 없었습니다. 작동하고 행복했습니다. :) 이제 http : // https :로 변경하고 원래 URL에서 httpURLConnection.setRequestProperty ("Accept-Encoding", "gzip, deflate")를 설정합니다. 및 httpURLConnection.setInstanceFollowRedirects (true); 그 일이 시작되었습니다. 귀하의 도움에 대단히 감사합니다 – Hector