Looks like a bug in MediaController when you're using it the way you are
instead of using the show/hide mechanism.
Can you use show/hide in your app instead?
BTW, you really should remove those "// TODO Auto-generated method stub"
once you've filled in the stub :)


On Sun, Jun 21, 2009 at 11:37 PM, manoj <[email protected]> wrote:

>
> Hi,
>
> I want to enable the MediaController for the MediaPlayer.
>
> For this I have written the code like this:
>
> public class AudioPlayerNew extends Activity implements
>
> MediaPlayerControl,MediaPlayer.OnPreparedListener,MediaPlayer.OnBufferingUpdateListener
> {
>         MediaController mediaController;
>         MediaPlayer mMediaPlayer;
>         private String path = "/sdcard/Kaarulo Shikarukelle.mp3";
>         int percent = 1;
>         boolean playerState = true;
>
>        public void onCreate(Bundle icicle)
>        {
>                super.onCreate(icicle);
>                setContentView(R.layout.sdcard_media_view);
>                mediaController = (MediaController) findViewById
> (R.id.MediaController01);
>                playAudio(path);
>                mediaController.setAnchorView( findViewById
> (R.layout.sdcard_media_view));
>                mediaController.setMediaPlayer(this);
>                mediaController.bringToFront();
>                mediaController.setEnabled(true);
>        }
>
>        private void playAudio(String media)
>        {
>                                try
>                               {
>                                mMediaPlayer = new MediaPlayer();
>                                         mMediaPlayer.setDataSource(path);
>                                           mMediaPlayer.prepare();
>
> mMediaPlayer.setOnSeekCompleteListener(this);
>
> mMediaPlayer.setOnPreparedListener(this);
>
> mMediaPlayer.setOnCompletionListener(this);
>
> mMediaPlayer.setOnErrorListener(this);
>                       }
>                       catch (Exception e)
>                              {
>                            Log.e(TAG, "error: " + e.getMessage(), e);
>                              }
>
>              }
>
> @Override
>    protected void onDestroy() {
>        super.onDestroy();
>        // TODO Auto-generated method stub
>        dismissDialog();
>        if(null != mMediaPlayer)
>        {
>                mMediaPlayer.release();
>                mMediaPlayer = null;
>        }
>
>
>                wakeLock.release();
>    }
>
>        @Override
>        public int getBufferPercentage() {
>                System.out.println("MediaController.getBufferPercentage()
> called!!!");
>                // TODO Auto-generated method stub
>                return percent;
>        }
>
>        @Override
>        public int getCurrentPosition() {
>                System.out.println("MediaController.getCurrentPosition()
> called!!!");
>                // TODO Auto-generated method stub
>                return mMediaPlayer.getCurrentPosition();
>        }
>
>        @Override
>        public int getDuration() {
>                System.out.println("MediaController.getDuration()
> called!!!");
>                // TODO Auto-generated method stub
>                return mMediaPlayer.getDuration();
>        }
>
>        @Override
>        public boolean isPlaying()
>        {
>                //System.out.println("MediaController.isPlaying()
> called!!!");
>                // TODO Auto-generated method stub
>                return playerState;
>        }
>
>        @Override
>        public void pause()
>        {
>                //System.out.println("MediaController.pause() called!!!");
>                // TODO Auto-generated method stub
>                if(null != mMediaPlayer)
>                {
>                        mMediaPlayer.pause();
>                }
>                playerState = false;
>        }
>
>        @Override
>        public void seekTo(int pos)
>        {
>                // TODO Auto-generated method stub
>                //System.out.println("MediaController.seekTo() called!!!");
>                if(mMediaPlayer != null)
>                {
>                        mMediaPlayer.seekTo(pos);
>                }
>        }
>
>        @Override
>        public void start()
>        {
>                //System.out.println("MediaController.start() called!!!");
>                // TODO Auto-generated method stub
>                if(null != mMediaPlayer )//&& !mMediaPlayer.isPlaying())
>                {
>                        mMediaPlayer.start();
>                }
>                playerState = true;
>        }
>
>
>
>        @Override
>        public void onPrepared(MediaPlayer arg0) {
>                // TODO Auto-generated method stub
>                dismissDialog();
>                mMediaPlayer.start();
>        }
>
>
>
>        @Override
>        public void onCompletion(MediaPlayer mp) {
>                // TODO Auto-generated method stub
>                Log.i("VideoViewDemo ->"," onCompletion()
> calledooooochhhhhhhh");
>                setProgressBarIndeterminateVisibility(false);
>                finish();
>        }
>
>
>
>        @Override
>        public void onBufferingUpdate(MediaPlayer mp, int arg1) {
>
>                System.out.println("Buffer percentage :"+arg1);
>                // TODO Auto-generated method stub
>                percent = arg1;
>        }
>
>
>
>        @Override
>        public boolean onError(MediaPlayer mp, int what, int extra) {
>                isVideoFilePlayedProperly = false;
>
>                // TODO Auto-generated method stub
>                Log.i("VideoViewDemo ->"," onError() calledooooochhhhhhhh");
>                Log.i("onERROR:","arg1:"+what);
>                Log.i("onERROR:","arg2:"+extra);
>                return true;
>        }
>
> }
>
> I added MediPlayerController to the layout and able to view the same.
>
> And I am able to play/pause through these controls.
>
> But the app is not updating the buffer (seek bar movement).
>
> When only I move the trackball, then I am able to see the track bar
> increment/decrement according to the trackbar.
>
> Now I have two problems:
>
> 1. seek bar is not incrementing according to the mediaplayer.
>
> 2. I am not able to exit the app when I press the 'Back' key, only
> when the song completes then the app got exited.
>
> I am playing mp3 songs from sdcard.
>
> Can anyone please help me.
>
> Thanks,
> Manoj.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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