2016-11-17 2 views
0

Я разрабатываю простое приложение для потокового аудиопотока. При воспроизведении аудио с URL-адресов приложение также имеет возможность загрузить файл. Аудиофайлы загружаются в Внутренняя память/голоса. Как показать все загруженные аудиозаписи этой папки в моем приложении? Я хочу получить доступ ко всем аудиофайлам в папке и показать в своем приложении, чтобы пользователям не нужно было искать файлы вручную. Пожалуйста, направляйте. Спасибо!Как получить доступ к загруженной папке аудио в приложении android

ответ

0
String path = Environment.getExternalStorageDirectory().toString()+"/voices"; 
Log.d("Files", "Path: " + path); 
File directory = new File(path); 
File[] files = directory.listFiles(); 
Log.d("Files", "Size: "+ files.length); 
for (int i = 0; i < files.length; i++) 
{ 
    Log.d("Files", "FileName:" + files[i].getName()); 
} 

Таким образом, вы получите все файлы, хранящиеся в voices директории в files массив.

+0

Спасибо за ваше решение. Это помогло мне получить имена файлов и заполнить список. Любая помощь для адаптера пользовательского массива для заполнения аудиофайлов в списке, чтобы они могли быть воспроизведены? – Noor

+0

@Noor, это еще один вопрос. Вы можете спросить одного, но сначала искать через Интернет. –

0

Я сделал это, используя следующий код:

private ListView mainListView ; 
private ArrayAdapter<String> listAdapter ; 
private MediaPlayer mp = new MediaPlayer(); 
private List<String> ListOfFiles = new ArrayList<String>(); 
String path = Environment.getExternalStorageDirectory().toString()+"/voices"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    // Find the ListView resource. 
    mainListView = (ListView) findViewById(R.id.mainListView); 


    Log.d("Files", "Path: " + path); 
    File directory = new File(path); 
    File[] files = directory.listFiles(); 
    Log.d("Files", "Size: "+ files.length); 
    for (int i = 0; i < files.length; i++) 
    { 
     Log.d("Files", "FileName:" + files[i].getName()); 
    } 

    for (int i = 0; i < files.length; i++) { 
     ListOfFiles.add(files[i].getName()); 
    } 


    listAdapter = new ArrayAdapter<String>(this, R.layout.row_layout, ListOfFiles); 
    mainListView.setAdapter(listAdapter); 


    mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      playSong(path +"/"+ ListOfFiles.get(position)); 

      Log.d("Path",path + ListOfFiles.get(position)); 
     } 
    }); 
} 

private void playSong(String songPath) { 
    try { 
     mp.reset(); 
     mp.setDataSource(songPath); 
     mp.prepare(); 
     mp.start(); 
    } catch (IOException e) { 
     Log.v(getString(R.string.app_name), e.getMessage()); 
    } 
}