android - 如何在Android中下载音频文件

标签 android audio gzipinputstream

我有一个发布的Android应用程序,该应用程序具有HTTP音频下载过程。

到今天为止,此过程运行良好。

我的代码有什么问题?

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

最佳答案

我真的很惊讶它下载了什么-您确定是吗?

您发布的http网址:

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

当前正在重定向到https cloudfront地址:
https://d28julafmv4ekl.cloudfront.net/...
HttpUrlConnection将不遵循跨方案的重定向(即从http到https)。

因此,如果将* .amazon.com URL更改为https,也许可以解决您的问题...

关于android - 如何在Android中下载音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26066266/

相关文章:

android - PhoneGap Android 插件无法加载

java - 我的代码有什么问题,无法播放 wav 文件?

flash - ActionScript :在Adobe Flash CS4中停止声音

javascript - HTML 5 的音频标签在 angularJS 中连续使用时不起作用

java - 如何使用 java 将八位字节流读取为纯字符串/文本?

java - 我应该如何在不溢出堆的情况下处理大型(70MB 未压缩)字节流的解压?

java - 在 Android 中加密和解密文件的任何优化方式

Android mipmap,图像密度?

java - 从 GZIPInputStream 读取最后 *n* 行

java - 如何根据 Android/Java 中的特定开始/结束编号正确生成随机整数?