正在用andEngine引擎做游戏,遇到了一个关于资源列表和路径获取的问题先是调用了startActivityForResult
Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
Intent wrapperIntent=Intent.createChooser(intent,"Select Music");
((Activity)this).startActivityForResult(wrapperIntent, 1);
然后获得路径的函数这样写 @Override
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
if(resultCode==RESULT_OK)
{
Uri uri=data.getData();
// this.musicPath="/mnt/sdcard/mp3/connectV.mp3";
this.musicPath=uri.getPath();
musicFile=new File(this.musicPath);
try{
this.music=MusicFactory.createMusicFromFile(this.getMusicManager(), this.musicFile);
this.music.setLooping(false);
if(!music.isPlaying())
music.play();
}catch(IOException e)
{
Debug.e(e);
}
this.actionText=new ChangeableText(300,240,this.gameActionFont,musicPath,50);
}
super.onActivityResult(requestCode, resultCode, data);
}
我发现getPath()返回的String路径并不是文件所在的真正路径(像上面的sdcard那个才是真正路径),
而是像/external/...的路径要怎么改才可以呢?
我在其他地方看到有getPath(Uri uri)的函数
但是自己调用却没有该函数
该怎么才能用呢?或者请问还有其他什么方法能获得sd卡里音乐文件的列表和路径呢?
Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
Intent wrapperIntent=Intent.createChooser(intent,"Select Music");
((Activity)this).startActivityForResult(wrapperIntent, 1);
然后获得路径的函数这样写 @Override
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
if(resultCode==RESULT_OK)
{
Uri uri=data.getData();
// this.musicPath="/mnt/sdcard/mp3/connectV.mp3";
this.musicPath=uri.getPath();
musicFile=new File(this.musicPath);
try{
this.music=MusicFactory.createMusicFromFile(this.getMusicManager(), this.musicFile);
this.music.setLooping(false);
if(!music.isPlaying())
music.play();
}catch(IOException e)
{
Debug.e(e);
}
this.actionText=new ChangeableText(300,240,this.gameActionFont,musicPath,50);
}
super.onActivityResult(requestCode, resultCode, data);
}
我发现getPath()返回的String路径并不是文件所在的真正路径(像上面的sdcard那个才是真正路径),
而是像/external/...的路径要怎么改才可以呢?
我在其他地方看到有getPath(Uri uri)的函数
但是自己调用却没有该函数
该怎么才能用呢?或者请问还有其他什么方法能获得sd卡里音乐文件的列表和路径呢?
SetResult那里怎么设置的Data啊
getPath(Uri uri)的函数就是自己到media DB里面去取path
不过明显用uri更方便合理一些
http://topic.csdn.net/u/20110502/23/eb6e62ab-13cf-4b4a-a4fd-5fc852366ee1.html