关于俄罗斯方块背景音乐添加有关问题

关于俄罗斯方块背景音乐添加问题
求助~~下面是我的俄罗斯方块代码主函数,想加上背景音乐,可是不能在游戏进行同时播放,比如加到开头,就要先播放再进行游戏,问题在哪里啊,大虾们给些意见吧~~~




void main()
{
PlaySound(":D\\2628魏珂\\卡农.wav",0,SND_FILENAME|SND_SYNC);
  int GameOver=0;
  int key,nextbox; 
  int Currentaction=0;/*标记当前动作状态*/
  int gd=VGA,gm=VGAHI,errorcode;


  initgraph(&gd,&gm,"");
  errorcode = 1; 
  if (errorcode != 1)  
  {
  printf("\nNotice:Graphics error: %s\n");
  printf("Press any key to quit!");
  getch(); 
  exit(1);  
  }
  setbkcolor(BgColor);
  setcolor(FgColor);
  srand(time(NULL));//conic函数包含随机数
  Table.initialize(Sys_x,Sys_y,Horizontal_boxs,Vertical_boxs);/*初始化*/
  nextbox=Table.MkNextBox(-1);
  shapes[current_box_numb].show_box(Curbox_x,Curbox_y,current_box_numb);
  shapes[nextbox].show_box(LeftWin_x,Curbox_y+200,nextbox);
  show_intro(Sys_x,Curbox_y+320);
  getch();
  while(1)
  {
  /* Currentaction=0;
  flag_newbox=false;
  检测是否有按键*/
  if (_kbhit()){key=getch(); }//检查当前是否有键盘输入,若有则返回一个非0值,否则返回0 
  else { key=0; }

  switch(key)
  {
  case VK_LEFT:
  if(shapes[current_box_numb].MoveAble(Curbox_x,Curbox_y,MoveLeft))
  {shapes[current_box_numb].EraseBox(Curbox_x,Curbox_y);Curbox_x-=BSIZE;Currentaction=MoveLeft;}
  break;
  case VK_RIGHT:
  if(shapes[current_box_numb].MoveAble(Curbox_x,Curbox_y,MoveRight))
  {shapes[current_box_numb].EraseBox(Curbox_x,Curbox_y);Curbox_x+=BSIZE;Currentaction=MoveRight;}
  break;
  case VK_DOWN:
  if(shapes[current_box_numb].MoveAble(Curbox_x,Curbox_y,MoveDown))
  {shapes[current_box_numb].EraseBox(Curbox_x,Curbox_y);Curbox_y+=BSIZE;Currentaction=MoveDown;
shapes[current_box_numb].show_box(Curbox_x,Curbox_y,current_box_numb);}//在键盘输入向下时马上在下一位置绘制方块
  else flag_newbox=true;
  break;
  case VK_UP:/*旋转方块*/
  if(shapes[shapes[current_box_numb].get_next()].MoveAble(Curbox_x,Curbox_y,MoveRoll))
  {shapes[current_box_numb].EraseBox(Curbox_x,Curbox_y);current_box_numb=shapes[current_box_numb].get_next();
  Currentaction=MoveRoll;
  }
  break;
   
  case VK_ESCAPE:
  GameOver=1;
  break;
  default:
  break;
  }

  if(Currentaction)
  { /*表示当前有动作,移动或转动*/
  shapes[current_box_numb].show_box(Curbox_x,Curbox_y,current_box_numb);
  Currentaction=0;
  }

  /*按了往下键,但不能下移,就产生新方块*/
  if(flag_newbox)
  {
  /*这时相当于方块到底部了,把其中出现点满一行的清去,置0*/
  shapes[nextbox].ErasePreBox(LeftWin_x,Sys_y+200);
  nextbox=Table.MkNextBox(nextbox);
  shapes[nextbox].show_box(LeftWin_x,Curbox_y+200,nextbox);
  if(!shapes[current_box_numb].MoveAble(Curbox_x,Curbox_y,MoveDown))/*刚一开始,游戏结束*/
  {
  shapes[current_box_numb].show_box(Curbox_x,Curbox_y,current_box_numb);
  GameOver=1;