I'm developing an app, and in that app I have one button, named 'choose sound'. When user will click this button, he/she should be asked to choose any audio file from the file manager/memory.
So, I know that for this, I'll have to use Intent.Action_GetData
. I'm doing the same:
//code start
Intent intent = new Intent();
intent.setType("audio/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent,1);
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
if(requestCode == 1){
if(resultCode == RESULT_OK){
//the selected audio.
Uri uri = data.getData();
int SoundID=soundPool.Load(uri.toString(), 1);
//SoundPool is already constructed and is working perfectly for the resource files
PlaySound(SoundID);
//PlaySound method is already defined
}
}
super.onActivityResult(requestCode, resultCode, data);
}
//end of code
but it's not working
Now, in OnActivityResult
, I'm not getting that how to load the proper URI of the file selected by user, because before Android 4.4
, it returns the different URI and after Android 4.4
it returns the different URI on intent.GetData();
. Now, what I have to do?
Also, I know that for playing the audio file, I'll have to use SoundPool
, and I have the code for that too, in fact it's working fine for the resource/raw/audio files, but how to load/play files in SoundPool
from this URI
?