Looking to play MPG files from a list

I trying to play a series of MPG videos from a list.  The MediaPlayer plays
the first video just fine, when I try to set the MediaPlayer to play the
next video; it does not play the video and attempts to play the next video.
When the code gets down to the Play method again I get an Invalid Thread
error.  I am adding the code so that someone might be able to help me.  With
this code as well as giving me a possible replacement.

procedure TFRM_Playing_Video.MediaPlayer1Notify(Sender: TObject);
var
 song_file : string;
  Reg : TRegistry;
  path : string;
begin
   Reg := TRegistry.Create;
   Reg.RootKey := HKEY_LOCAL_MACHINE;
   Reg.OpenKey('SOFTWARE\FSN', false);
   Path := Reg.ReadString('Path');
   Reg.Free;

   if NotifyValue = nvSuccessful then
   begin
       MediaPlayer1.Close;
       If Button_Pressed = False then
       begin
           If (LB_Play_List_Song.Items.Count - 1) > Song_Index then
               Song_Index := Song_Index + 1
           Else Song_Index := 0;

           LB_Playing_Song.Caption := LB_Play_List_Song.Items[Song_Index];
           LB_Playing_Artist.Caption :=
LB_Play_List_Artist.Items[Song_Index];

           song_file := path + '\media\Music_Videos\' +
                        LB_Play_List_File.Items[Song_Index];

           LB_Play_List_Song.ItemIndex := Song_Index;

           MediaPlayer1.Notify := False;
           MediaPlayer1.Display := PN_Video;
           MediaPlayer1.FileName := Song_File;
           MediaPlayer1.Open;
           MediaPlayer1.Rewind;
           MediaPlayer1.DisplayRect :=
Rect(6,6,PN_Video.Width-12,PN_Video.Height-12);
           MediaPlayer1.Play;
           MediaPlayer1.Notify := TRUE;
       end;
   end;
end;

Thanks,
Jeff