i have a very simple test app (see below), that simply tries to play a
streamed audio file below over and over.

after running for about half an hour (the file itself is only like 3.5
minutes or so), I get the following error:

11-05 12:16:07.625: DEBUG/PlayerDriver(554): buffering (15)
11-05 12:16:07.635: DEBUG/PlayerDriver(554): buffering (16)
11-05 12:16:07.644: DEBUG/PlayerDriver(554): buffering (17)
11-05 12:16:07.654: DEBUG/PlayerDriver(554): buffering (18)
11-05 12:16:07.654: DEBUG/PlayerDriver(554): buffering (19)
11-05 12:16:07.724: ERROR/PlayerDriver(554): Command PLAYER_PREPARE
completed with an error or info PVMFErrResource
11-05 12:16:07.724: ERROR/MediaPlayer(897): error (1, -17)
11-05 12:16:07.734: WARN/System.err(897): java.io.IOException: Prepare
failed.: status=0x1
11-05 12:16:07.744: WARN/PlayerDriver(554):
PVMFInfoErrorHandlingComplete
11-05 12:16:07.744: WARN/System.err(897):     at
android.media.MediaPlayer.prepare(Native Method)
11-05 12:16:07.744: WARN/System.err(897):     at
com.test.TestPlayer.onCompletion(TestPlayer.java:61)
11-05 12:16:07.754: WARN/System.err(897):     at
android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:
958)
11-05 12:16:07.754: WARN/System.err(897):     at
android.os.Handler.dispatchMessage(Handler.java:99)
11-05 12:16:07.754: WARN/System.err(897):     at android.os.Looper.loop
(Looper.java:123)
11-05 12:16:07.754: WARN/System.err(897):     at
android.app.ActivityThread.main(ActivityThread.java:4203)
11-05 12:16:07.765: WARN/System.err(897):     at
java.lang.reflect.Method.invokeNative(Native Method)
11-05 12:16:07.765: WARN/System.err(897):     at
java.lang.reflect.Method.invoke(Method.java:521)
11-05 12:16:07.765: WARN/System.err(897):     at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:791)
11-05 12:16:07.775: WARN/System.err(897):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
11-05 12:16:07.775: WARN/System.err(897):     at
dalvik.system.NativeStart.main(Native Method)
11-05 12:28:34.884: DEBUG/dalvikvm(622): GC freed 9170 objects /
524208 bytes in 79ms
11-05 12:43:32.385: DEBUG/dalvikvm(576): GC freed 18161 objects /
795040 bytes in 126ms
11-05 12:43:36.334: DEBUG/dalvikvm(622): GC freed 9171 objects /
524248 bytes in 76ms

It almost seems like some kind of resource leak or something.  Does
anyone have any ideas on what could be the problem?  I am getting this
in the simulator btw, so it's not like a dropped OTA signal.

tia.

---- cut here ----

package com.test;

import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
import android.os.Bundle;
import android.util.Log;

public class TestPlayer extends Activity implements OnErrorListener,
OnBufferingUpdateListener, OnCompletionListener {
        private MediaPlayer mp = new MediaPlayer();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
                mp = new MediaPlayer();
                mp.reset();
                        mp.setDataSource("http://blahblah.com/test.m4a";);
                mp.prepare();
                        mp.start();
                        mp.setOnErrorListener(this);
                        mp.setOnBufferingUpdateListener(this);
                        mp.setOnCompletionListener(this);

                } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IllegalStateException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
    }

        @Override
        public boolean onError(MediaPlayer mp, int what, int extra) {
                Log.e("test", "onError: what: " + what + ", extra: " + extra);
                return false;
        }

        @Override
        public void onBufferingUpdate(MediaPlayer mp, int percent) {
                Log.i("test", "onBufferingUpdate: percent: " + percent);
        }

        @Override
        public void onCompletion(MediaPlayer mp) {
                try {
                        mp.reset();
                        mp.release();
                        mp = null;

                        mp = new MediaPlayer();
                mp.reset();
                        mp.setDataSource("http://blahblah.com/test.m4a";);
                mp.prepare();
                        mp.start();
                        mp.setOnErrorListener(this);
                        mp.setOnBufferingUpdateListener(this);
                        mp.setOnCompletionListener(this);

                } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IllegalStateException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }
}

---- cut here ----

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

Reply via email to