Как заставить стандартный музыкальный проигрыватель найти мои файлы - PullRequest
0 голосов
/ 27 мая 2011

Мое приложение загружает некоторые mp3-файлы на SDCard.Я хочу играть их с другими музыкальными плеерами, установленными на устройстве.Но другие музыкальные проигрыватели не находят мои загруженные файлы автоматически.Как заставить MediaScanner работать так, чтобы мои медиафайлы можно было воспроизводить из стандартного музыкального приложения?

Я загружаю файлы, используя этот код

public void run() {
        loaded = 0;
        try{                
        java.io.BufferedInputStream in = new java.io.BufferedInputStream(new java.net.URL(url).openStream());
        java.io.FileOutputStream fos = new java.io.FileOutputStream(FileName);
        java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
        byte[] data = new byte[1024];
        int x=0;
        while((x=in.read(data,0,1024))>=0 && !stop){
            loaded += x;
            bout.write(data,0,x); 
        }
        fos.flush();
        bout.flush();
        fos.close();
        bout.close();
        in.close();

        }catch(Exception e){

        }
}

Ответы [ 3 ]

0 голосов
/ 27 мая 2011

Вы можете принудительно проверить медиафайл с помощью трансляции:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
0 голосов
/ 13 февраля 2013

Вот простое «решение на основе одного файла»:

Всякий раз, когда вы добавляете или удаляете файл, сообщите об этом провайдеру контента MediaStore, используя

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageAddedOrDeleted)));

Главное преимущество: работа с любым типом пантомимы, поддерживаемым MediaStore

Примечание:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

слишком дорого и сканирует все.Мой совет: если вы можете, используйте подход «на файл».

0 голосов
/ 27 мая 2011

Убедитесь, что в папке, в которой находятся ваши файлы, нет файла с именем «.nomedia».Этот файл говорит MediaScanner не проверять там.

(примечание: перед nomedia стоит ".", Что означает, что он может быть скрыт) * ​​1003 *

...