Android的MP3文件过滤形式SD卡 [英] Android MP3 file Filtering form sdcard
本文介绍了Android的MP3文件过滤形式SD卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经开发的应用程序从SD卡读取数据。
我使用该选项进行过滤,但是当我用logcat中我发现,我只能得到唯一的数据文件 SD卡/ some_dir
但我有声音文件到不同的文件夹,所以如果有可能给我的通用code 以获取所有MP3文件形成SD卡。
类FileExtensionFilter实现了FilenameFilter {
公共布尔接受(文件目录,字符串名称){
回报(name.endsWith(MP3)|| name.endsWith()MP3);
}
}
解决方案
这是我的AudioFilter :)希望它会帮助你。
包com.designfuture.music.util;进口的java.io.File;
进口java.io.FileFilter中;
进口java.io.FilenameFilter;进口com.designfuture.framework.util.LogHelper;公共类AudioFileFilter实现的FileFilter { 受保护的静态最后弦乐TAG =AudioFileFilter;
/ **
*允许目录
* /
私人最终布尔allowDirectories; 公共AudioFileFilter(布尔allowDirectories){
this.allowDirectories = allowDirectories;
} 公共AudioFileFilter(){
这是真的);
} @覆盖
公共布尔接受(文件f){
如果(f.isHidden()||!f.canRead()){
返回false;
} 如果(f.isDirectory()){
返回allowDirectories;
}
字符串EXT = getFileExtension(F);
如果(EXT == NULL)返回false;
尝试{
如果(SupportedFileFormat.valueOf(ext.toUpperCase())!= NULL){
返回true;
}
}赶上(抛出:IllegalArgumentException五){
//不知道枚举值
返回false;
}
返回false;
} 公共字符串getFileExtension(文件f){
INT I = f.getName()lastIndexOf('。')。
如果(I 0){
。返回f.getName()子第(i + 1);
}其他
返回null;
} / **
*文件格式,目前支持库
* /
公共枚举SupportedFileFormat
{
_3GP(3GP),
MP4(MP4),
M4A(M4A),
AAC(AAC),
TS(TS),
FLAC(后手),
MP3(MP3),
MID(中间),
XMF(XMF),
MXMF(mxmf),
RTTTL(RTTTL),
RTX(RTX),
OTA(OTA),
IMY(IMY),
OGG(奥格),
MKV(MKV),
WAV(WAV); 私人字符串filesuffix; SupportedFileFormat(字符串filesuffix){
this.filesuffix = filesuffix;
} 公共字符串getFilesuffix(){
返回filesuffix;
}
}}
I have developing the application to fetching data from sd card.
I used this option for filtering but when I used logcat I found that I only get data of only file sdcard/some_dir
But I have sound files into different folder so if possible give me universal code to fetch all the mp3 file form the sdcard.
class FileExtensionFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".mp3") || name.endsWith(".MP3"));
}
}
解决方案
This is mine AudioFilter :) Hope it will help you
package com.designfuture.music.util;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import com.designfuture.framework.util.LogHelper;
public class AudioFileFilter implements FileFilter {
protected static final String TAG = "AudioFileFilter";
/**
* allows Directories
*/
private final boolean allowDirectories;
public AudioFileFilter( boolean allowDirectories) {
this.allowDirectories = allowDirectories;
}
public AudioFileFilter() {
this(true);
}
@Override
public boolean accept(File f) {
if ( f.isHidden() || !f.canRead() ) {
return false;
}
if ( f.isDirectory() ) {
return allowDirectories;
}
String ext = getFileExtension(f);
if ( ext == null) return false;
try {
if ( SupportedFileFormat.valueOf(ext.toUpperCase()) != null ) {
return true;
}
} catch(IllegalArgumentException e) {
//Not known enum value
return false;
}
return false;
}
public String getFileExtension( File f ) {
int i = f.getName().lastIndexOf('.');
if (i > 0) {
return f.getName().substring(i+1);
} else
return null;
}
/**
* Files formats currently supported by Library
*/
public enum SupportedFileFormat
{
_3GP("3gp"),
MP4("mp4"),
M4A("m4a"),
AAC("aac"),
TS("ts"),
FLAC("flac"),
MP3("mp3"),
MID("mid"),
XMF("xmf"),
MXMF("mxmf"),
RTTTL("rtttl"),
RTX("rtx"),
OTA("ota"),
IMY("imy"),
OGG("ogg"),
MKV("mkv"),
WAV("wav");
private String filesuffix;
SupportedFileFormat( String filesuffix ) {
this.filesuffix = filesuffix;
}
public String getFilesuffix() {
return filesuffix;
}
}
}
这篇关于Android的MP3文件过滤形式SD卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文