Android 에서 URLConnection 을 사용 하여 오디 오 파일 을 다운로드 하 는 방법
2736 단어 androidURLConnection오디 오 파일
때때로 우 리 는 오디 오 파일 을 다운로드 해 야 한다.온라인 오디 오 파일 을 로 컬 파일 에 스 트림 을 통 해 쓸 수 있 는 아 이 디 어 를 제공 합 니 다.
URLConnection 을 사용 하여 연결 을 만 들 고 가 져 온 데 이 터 를 파일 에 기록 합 니 다.
URLConnection 이 연결 을 만 들 면 데이터 길 이 를 얻 을 수 있 습 니 다.이로써 우 리 는 다운로드 진 도 를 계산 해 낼 수 있다.
public class DownloadStreamThread extends Thread {
String urlStr;
final String targetFileAbsPath;
public DownloadStreamThread(String urlStr, String targetFileAbsPath) {
this.urlStr = urlStr;
this.targetFileAbsPath = targetFileAbsPath;
}
@Override
public void run() {
super.run();
int count;
File targetFile = new File(targetFileAbsPath);
try {
boolean n = targetFile.createNewFile();
Log.d(TAG, "Create new file: " + n + ", " + targetFile);
} catch (IOException e) {
Log.e(TAG, "run: ", e);
}
try {
URL url = new URL(urlStr);
URLConnection connection = url.openConnection();
connection.connect();
int contentLength = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(targetFileAbsPath);
byte[] buffer = new byte[1024];
long total = 0;
while ((count = input.read(buffer)) != -1) {
total += count;
Log.d(TAG, String.format(Locale.CHINA, "Download progress: %.2f%%", 100 * (total / (double) contentLength)));
output.write(buffer, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
Log.e(TAG, "run: ", e);
}
}
}
다운 로드 를 시작 하면 스 레 드 를 시작 합 니 다.
new DownloadStreamThread(urlStr, targetFileAbsPath).start();
주의해 야 할 것 은 로 컬 에 파일 이 있다 면 논리 적 판단 이 필요 하 다 는 점 이다.예 를 들 어 오래된 파일 을 삭제 하고 다시 다운로드 할 지 여부 입 니 다.기 존 파일 을 판단 해 다운로드 작업 을 중단 하거나.예 를 들 어 현재 파일 의 길이 와 비교 할 수 있 고 일치 하지 않 으 면 로 컬 파일 을 삭제 하고 다시 다운로드 할 수 있 습 니 다.
실제로 URLConnection 은 많은 스 트 리밍 을 처리 할 수 있다.오디 오 파일 을 다운로드 하 는 데 사 용 됩 니 다.다운로드 기능 과'밑 방'과 유사 한 기능 을 실현 할 수 있다.
코드 는 예제 공정 을 참고 할 수 있 습 니 다안 드 로 이 드 미디어 플레이어 오디 오 재생
총결산
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 가 URLConnection 을 사용 하여 오디 오 파일 을 다운로드 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.