我有以下代码。一切正常,但下载的MP3文件在使用默认音乐播放器播放时没有任何属性(元数据),如艺术家,标题等。如果尝试使用Android浏览器直接从网站下载相同的mp3文件并使用默认音乐播放器播放,则所有元数据都是完整的(即音乐播放器显示标题,艺术家等)。
@Override
protected String doInBackground(String... aurl) {
int count;
i = Integer.parseInt(aurl[0]);
try {
sura = "abc.mp3";
String addr = "http://www.xyzabc.com/" + sura;
URL url = new URL(addr);
HttpURLConnection conexion = (HttpURLConnection) url.openConnection();
conexion.setRequestMethod("GET");
conexion.setDoOutput(true);
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
File file = new File(rootDir + "/mysite/" + sura);
OutputStream output = new FileOutputStream(file);
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1 & run == true) {
total += count;
publishProgress("" + (int) ((total * 100) / lenghtOfFile));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
}
return null;
}
答案 0 :(得分:1)
下载完成后,系统内容提供商不会立即更新。 尝试重新启动模拟器或安装/卸载SD卡,查看内容提供商是否更新。
uri是MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
,你可以通过查询MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.COMPOSER, MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.ARTIST
和其他人获取详细信息(All in MediaStore.Audio.Media。*)
如果您想立即获取信息,也许您应该自己更新内容提供商手册。