Java 下载带有元数据/属性(如标题、艺术家等)的mp3
我有以下代码。当我使用默认的音乐播放器播放时,除了下载的MP3文件没有任何属性(元数据),例如艺术家、标题等,其他一切都正常工作。如果尝试直接使用android浏览器从站点下载相同的mp3文件,并使用默认音乐播放器播放,则所有metatdata都是完整的(即音乐播放器显示标题、艺术家等)Java 下载带有元数据/属性(如标题、艺术家等)的mp3,java,android,mp3,metadata,Java,Android,Mp3,Metadata,我有以下代码。当我使用默认的音乐播放器播放时,除了下载的MP3文件没有任何属性(元数据),例如艺术家、标题等,其他一切都正常工作。如果尝试直接使用android浏览器从站点下载相同的mp3文件,并使用默认音乐播放器播放,则所有metatdata都是完整的(即音乐播放器显示标题、艺术家等) 下载完成后,系统内容提供商没有立即更新。 尝试重新启动emulator或安装/取消安装sd卡,查看内容提供商是否更新 uri是MediaStore.Audio.Media.EXTERNAL\u CONTENT\
下载完成后,系统内容提供商没有立即更新。 尝试重新启动emulator或安装/取消安装sd卡,查看内容提供商是否更新 uri是
MediaStore.Audio.Media.EXTERNAL\u CONTENT\u uri
,您可以通过查询MediaStore.Audio.Media.DATA、MediaStore.Audio.Media.TITLE、,
MediaStore.Audio.Media.COMPOSER、MediaStore.Audio.Media.ALBUM、,
MediaStore.Audio.Media.ARTIST
和其他(都在MediaStore.Audio.Media.*中)
如果您想立即获得信息,也许您应该自己更新内容提供商手册。下载完成后,系统内容提供商没有立即更新。 尝试重新启动emulator或安装/取消安装sd卡,查看内容提供商是否更新 uri是
MediaStore.Audio.Media.EXTERNAL\u CONTENT\u uri
,您可以通过查询MediaStore.Audio.Media.DATA、MediaStore.Audio.Media.TITLE、,
MediaStore.Audio.Media.COMPOSER、MediaStore.Audio.Media.ALBUM、,
MediaStore.Audio.Media.ARTIST
和其他(都在MediaStore.Audio.Media.*中)
如果您想立即获得信息,也许您应该自己更新内容提供商手册。谢谢JohnCookie。我使用默认的mp3播放器立即播放mp3文件,但它不显示标题、艺术家等。我在手机中尝试了这一点。(不在emulator中)。但在我使用android浏览器下载后,我试着播放了这首歌,它显示了标题、艺术家等。应该是系统数据库没有立即更新细节。系统MediaPlayer应用程序也通过URI获取信息,是否尝试手动更新?(我不确定,我只知道我们可以通过contentProvider获得媒体详细信息,当设备重新启动或sd卡重新加载时,它会自动更新)谢谢Johncokie。我使用默认的mp3播放器立即播放mp3文件,但它不显示标题、艺术家等。我在手机中尝试了这一点。(不在emulator中)。但在我使用android浏览器下载后,我试着播放了这首歌,它显示了标题、艺术家等。应该是系统数据库没有立即更新细节。系统MediaPlayer应用程序也通过URI获取信息,是否尝试手动更新?(我不确定,我只知道我们可以通过contentProvider获取媒体详细信息,当设备重新启动或sd卡重新加载时,它会自动更新)
@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;
}