Загрузка mp3 с метаданными / свойствами, такими как название, исполнители и т. Д. - PullRequest
1 голос
/ 19 января 2012

У меня есть следующий код. Все работает нормально, за исключением того, что загруженный MP3-файл не имеет никаких свойств (метаданных), таких как Artist, title и т. Д., Когда я играю с помощью музыкального проигрывателя по умолчанию. Если попытаться загрузить один и тот же файл mp3 с сайта напрямую с помощью браузера Android и воспроизвести с помощью музыкального проигрывателя по умолчанию, все метаданные остаются без изменений (т. Е. Название музыкального проигрывателя, имя исполнителя и т. Д.).

    @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;
    }

1 Ответ

1 голос
/ 19 января 2012

Системный контент-провайдер не обновлялся после завершения загрузки.Попробуйте перезапустить эмулятор или установить / удалить 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 и другим (все в MediaStore.Audio.Медиа. *)

Если вы хотите немедленно получить информацию, возможно, вам следует самостоятельно обновить руководство для контент-провайдера.

...