Roger
Roger

Reputation: 6527

MediaPlay won't play a sound, why?

Here's my code

MediaPlayer mp = new MediaPlayer();
...
try {
mp.setDataSource( getString(R.raw.click));
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
                                        e.printStackTrace();
} catch (IllegalStateException e) {
                                        e.printStackTrace();
} catch (IOException e) {
                                        e.printStackTrace();
}

yet strangely it give me

09-26 16:06:39.316: INFO/ActivityManager(110): Displayed Constructor.rob.com/.constr: +7s443ms
09-26 16:06:40.445: INFO/StagefrightPlayer(76): setDataSource('res/raw/click.mp3')
09-26 16:06:40.453: ERROR/MediaPlayer(21990): error (1, -2147483648)
09-26 16:06:40.457: WARN/System.err(21990): java.io.IOException: Prepare failed.: status=0x1

any ideas what might be wrong?

Thanks!

Upvotes: 0

Views: 211

Answers (2)

mayank_droid
mayank_droid

Reputation: 1015

Try this :

mp= MediaPlayer.create(context, R.raw.click);
mp.start();

Upvotes: 2

Kevin Coppock
Kevin Coppock

Reputation: 134714

Add mp.reset() before mp.setDataSource().

EDIT: Wait, what are you doing with getString? You can't do that; to set a data source you need a FileDescriptor. Try this:

AssetFileDescriptor afd = getAssets().openRawResourceFd(R.raw.click);
mp.reset();
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mp.prepare();
mp.start();

Upvotes: 3

Related Questions