I wrote a VB6 application for automatic or manual playing of mp3 files from a play list. This application can run forever in Windows 98, but crashes after around 128 songs in Windows 2000. I decided to replicate the basic routine that causes the crash in VB2005 on my Windows 2000 machine. Sure enough, it does the same thing. Using axmediaplayer, I load a song for playing. When played, a timer is enabled which repeatly loads and plays the same song at approximately 1 second intervals. I did this so I can quickly get to the 128 song limit which causes the crash. Here is the Timer routine:

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
AxMediaPlayer1.Stop()
AxMediaPlayer1.FileName = OpenFileDialog1.FileName
AxMediaPlayer1.Play()
lblTimesPlayed.Text = lblTimesPlayed.Text + 1
End Sub

At song 128 I get an "AccessViolationException was unhandled. Attempted to read or write protected memory. This is often an indication that other memory is corrupt." I figure this has something to do with an overflow, but cannot figure out what the media player is counting or why, nor can I find out how to clear it. I have found numerous references to this error in similar code (crashes after periodic accesses) but no answers. If anyone has found a work-around, please let me know!
Thanks in advance,
Crim1969

I do not know how this behaves in XP or Vista. I will have to borrow an XP machine to test it; I do not know anyone who has Vista yet. I noticed that as each song is loaded, the number of handles increase in the Processes Window.

Update: I finally got a chance to try this routine in XP. Runs flawlessly. This strengthens my theory that this is a Win 2000 bug. I would think this would be a common snag with a work-around out there somewhere.

This article has been dead for over six months. Start a new discussion instead.