I'm struggling to close these two timer tasks

I have
        @Override
        public void onCompletion(MediaPlayer arg0) {
                try {
                        mMediaPlayer.stop();
                        mMediaPlayer = null;
                        if (timer != null) {
                                timer.cancel();                 
                                timer.purge();
                                Thread.sleep(500);
                        }
                        timer       = null;
                } catch (Exception e) {
                }
        }

The sleep just to give it chance to run through
But I get a NullPoinerException  on the sleep line

Thread [<12> Timer-0] (Suspended (exception NullPointerException))      
        Timer$TimerImpl.run() line: 290 

this    Timer$TimerImpl  (id=830020453552)      
currentTime     1309378473189   
pos     0       
task    Video2$2  (id=830013266400)     
        cancelled       false   
        fixedRate       false   
        lock    Object  (id=830013265024)       
        period  500     
        scheduledTime   1309378473189   
        this$0  Video2  (id=830013820608)       
        when    1309378473690   

So how does one close the timer once the video has come to and end ?

Thanks in advance



On Jun 29, 2011, at 2:53 PM, New Developer wrote:

> To Daniel
> 
> Thanks again
> Okay that seems to be working
> 
> Just to clarify
> the 0 , 200  implies  start immediately  and re-occur every 200 milliseconds ?
> 
> the 100 , 200 implies start in 100 milliseconds and re-occur every 200 
> milliseconds ?
> 
> Thus there is two cycles going 100 milliseconds apart  causing it to play for 
> 100 milliseconds and then pause for 100 milliseconds
> so it plays (for 100 ms)  pauses for (100 ms)  
> 
> am I right ?
> 
> thanks again
> 
> 
> 
> 
> 
> On Jun 29, 2011, at 9:46 AM, Daniel Drozdzewski wrote:
> 
>> On Wed, Jun 29, 2011 at 1:37 PM, New Developer <[email protected]> wrote:
>>> To Daniel
>>> I have tried pause no success
>>> can you let me know more what you were thinking  perhaps I have implemented 
>>> it incorrectly ??
>>> 
>>> Thanks again
>> 
>> Sure, I was thinking following (I have not implemented this myself mind):
>> 
>> <code>
>> MediaPlayer player;
>> Timer timer = new Timer();
>> //initialisation of the player
>> 
>> timer.schedule( new TimerTask() {
>> run() {
>>    player.start();
>> }
>> }, 0, 200);
>> 
>> timer.schedule( new TimerTask() {
>> run() {
>>    player.pause();
>> }
>> }, 100, 200);
>> 
>> </code>
>> 
>> You schedule 2 recurring tasks on a Timer: one to resume/start the
>> video every 200 milliseconds, and the second to pause it also every
>> 200 milliseconds, with 100 millisecond offset. This should slow the
>> playback by the factor of 2. You can adjust the numbers to get
>> different ratios and I would not play or pause for longer than say 500
>> milliseconds, as it will look jerky.
>> 
>> It is possible that both timers will diverge (no real-time promise),
>> in which case you will have to do something a bit more clever than
>> arbitrary numbers, as the paused_time / play_time ratio will shift.
>> 
>> You will probably need to monitor actual track progress by using
>> MediaPlayer.getCurrentPosition(), rather than the inaccurate wall
>> clock.
>> 
>> Daniel
>> 
>> 
>>> 
>>> 
>>> On Jun 12, 2011, at 3:52 AM, Daniel Drozdzewski wrote:
>> ^^^^^^^^^^^^^^^----- Internet got very slow or The Matrix is
>> overloaded (could not resist)
>> 
>> -- 
>> 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
> 
> -- 
> 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

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