如何在 android 应用程序中访问下载的音频文件夹
How to access downloaded audios folder in android app
我正在开发一个简单的音频流 android 应用程序。从 URL 播放音频时,应用程序还可以选择下载文件。正在 内部 Storage/voices 文件夹中下载音频文件。如何在我的应用程序中显示此文件夹的所有已下载音频?我想访问 voices 文件夹中的所有音频并显示在我的应用程序中,这样用户就不需要手动搜索文件。请指导。谢谢!
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
数组中。
我是使用以下代码完成的:
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());
}
}
我正在开发一个简单的音频流 android 应用程序。从 URL 播放音频时,应用程序还可以选择下载文件。正在 内部 Storage/voices 文件夹中下载音频文件。如何在我的应用程序中显示此文件夹的所有已下载音频?我想访问 voices 文件夹中的所有音频并显示在我的应用程序中,这样用户就不需要手动搜索文件。请指导。谢谢!
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
数组中。
我是使用以下代码完成的:
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());
}
}