jopo
jopo

Reputation: 23

Play audio from assets with SQLite

My problem is that my code was not working. i have 100+ mp3 store in my assets/anthem folder.

flAnthem = c.getString(c.getColumnIndex(KEY_ANTHEM));
flAnthemSDCard = c.getString(c.getColumnIndex(KEY_ANTHEM_SDCARD));

AssetManager assetManager= getAssets();
InputStream inputStream = null;
try{
    inputStream = assetManager.open("anthem/" + flAnthem);
    mediaPlayer.setDataSource(String.valueOf(inputStream));
    mediaPlayer.prepare();
    mediaPlayer.start();
}catch(IOException e){
    e.printStackTrace();
}

Upvotes: 1

Views: 78

Answers (1)

Khaled Lela
Khaled Lela

Reputation: 8119

Replace this

inputStream = assetManager.open("anthem/" + flAnthem);
mediaPlayer.setDataSource(String.valueOf(inputStream)); //DataSource is not correctly setted. 

By Using AssetFileDescriptor

flAnthem = c.getString(c.getColumnIndex(KEY_ANTHEM)) + ".mp3"; // don't forget extension 

AssetFileDescriptor descriptor = getAssets().openFd("anthem/"+mediaName);
mediaPlayer.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());

BTW

Upvotes: 1

Related Questions