What is the preferred way of reusing a MediaPlayer when using
resources?
My try looks a bit ... too complicated... so maybe I should be happy
to see that it didn't work.
(I run the Android 1.5 SDK and emulator.)

According to this thread my problem may be a permission problem.
http://groups.google.se/group/android-developers/browse_thread/thread/5569a88c50dcc043?pli=1

I get the same error. But in my case it only occurs when I use
FileDescriptor!?!
The use case differs however, because I use a resource stored in the
bundle.
I have s0.mp3 safely stored in the project /res/raw and it
successfully plays when I use SoundPool or MediaPlayer.create. And the
log print tells me I referenced the correct file and stay safely in my
package.

I'm sure my way of getting the fd out from a package resource is the
problem, I didn't find any other way...
But why didn't setDataSource throw the exception instead of a
printout?
And why on earth is the same resource happily played one way but not
the other? Seems like a design flaw rather than a security raise.
Should I look in the  MediaPlayer.create code to see how they get
around the problem or can you help me understand how it works?


This is a test code snippet: (from onCreate of a simple Activity)

    soundPlayer = new SoundPool(1, AudioManager.STREAM_NOTIFICATION,
0);

    FileDescriptor fd = getResources().openRawResourceFd
(R.raw.s0).getFileDescriptor();
    Log.d("SoundTest", getResources().getResourceName(R.raw.s0));

    mediaPlayer = new MediaPlayer();
    try {
      mediaPlayer.setDataSource(fd);
      mediaPlayer.prepare();
    } catch (Exception e) {
      Log.e("SoundTest","Error! " + Log.getStackTraceString(e));
    }

      mediaPlayer = MediaPlayer.create(this, R.raw.s0);
      if (mediaPlayer != null) {
        mediaPlayer.start();
      }

      soundPlayer.play(sounds[key], 1, 1, 1, 0, 2);


And the error:

PlayerDriver: Command PLAYER_SET_DATA_SOURCE completed with an error
or info PVMFErrNotSupported
MediaPlayer:  error (1, -4)
SoundTest:    Error! java.io.IOException: Prepare failed.: status=0x1
   at android.media.MediaPlayer.prepare(Native Method)


Thanks for any insight shared!
 JAG

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to