代码之家  ›  专栏  ›  技术社区  ›  Name

如何在Delphi中播放wav文件?

  •  18
  • Name  · 技术社区  · 16 年前

    Delphi中有哪些功能可以播放声音文件?

    5 回复  |  直到 9 年前
        1
  •  27
  •   Igal Tabachnik    16 年前

    以下是最快的方法:

    uses MMSystem;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      sndPlaySound('C:\Windows\Media\Tada.wav',
        SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      sndPlaySound(nil, 0); // Stops the sound
    end;
    
        2
  •  4
  •   Name    16 年前

    使用win32-api(单位mmsystem)中的sndplaysound函数:

    sndplaysound('c:\windows\media\tada.wav',snd_async);

        3
  •  4
  •   Name    16 年前

    本页很好地解释了如何使用sndplaysound函数以及如何将wav文件作为资源嵌入: http://www.latiumsoftware.com/en/delphi/00024.php

        4
  •  3
  •   IceCold    9 年前

    简单的:

    procedure PlaySoundFile(FileName: string);
    begin
     if FileExists(FileName)
     then PlaySound(pchar(FileName), 0, SND_ASYNC or SND_FILENAME);  
    
     { Flags are:
        SND_SYNC  =0 = Start playing, and wait for the sound to finish
        SND_ASYNC =1 = Start playing, and don't wait to return
        SND_LOOP  =8 = Keep looping the sound until another sound is played  }
    end;
    

    人们也在引用sndplaysound,但这只是为了向后兼容。 所以,不要用它!

    您也可能对此感兴趣:

    procedure PlayWinSound(SystemSoundName: string);
    begin
     Winapi.MMSystem.PlaySound(PChar(SystemSoundName), 0, SND_ASYNC);
    end;
    
    { All available constants are defined in the registry under the path HKEY_CURRENT_USER -> AppEvents -> Schemes -> Apps -> .Default. 
      System sounds:
        SystemEXCLAMATION        - Note)
        SystemHAND               - Critical Stop)
        SystemQUESTION           - Question)
        SystemSTART              - Windows-Start)
        SystemEXIT               - Windows-Shutdown)
        SystemASTERIX            - Star)
        RESTOREUP                - Enlarge)
        RESTOREDOWN              - Shrink)
        MENUCOMMAND              - Menu)
        MENUPOPUP                - Pop-Up)
        MAXIMIZE                 - Maximize)
        MINIMIZE                 - Minimize)
        MAILBEEP                 - New Mail)
        OPEN                     - Open Application)
        CLOSE                    - Close Application)
        APPGPFAULT               - Program Error)
        Asterisk                 - played when a popup alert is displayed, like a warning message.
        Calendar Reminder        - played when a Calendar event is taking place.
        Critical Battery Alarm   - played when your battery reaches its critical level.
        Critical Stop            - played when a fatal error occurs.
        Default Beep             - played for multiple reasons, depending on what you do. For example, it will play if you try to select a parent window before closing the active one.
        Desktop Mail Notif       - played when you receive a message in your desktop email client.
        Device Connect           - played when you connect a device to your computer. For example, when you insert a memory stick.
        Device Disconnect        - played when you disconnect a device from your computer.
        Device Connect Failed    - played when something happened with the device that you were trying to connect.
        Exclamation              - played when you try to do something that is not supported by Windows.
        Instant Message Notif    - played when you receive an instant message.
        Low Battery Alarm        - played when the battery is running low.
        Message Nudge            - played when you receive a BUZZ in an instant message.
        New Fax Notification     - played when you receive a fax via your fax-modem.
        New Mail Notification    - played when you receive an email message.
        New Text Message Notif   - played when you receive a text message.
        NFP Completion           - played when the transfer of data via NFC between your Windows device and another device is completed.
        NFP Connection           - played when your Windows device is connecting to another device via NFC.
        Notification             - played when a default notification from a program or app is displayed.
        System Notification      - played when a system notification is displayed.  }
    
        5
  •  2
  •   Toon Krijthe    16 年前

    完整教程可从以下网址获得: http://sheepdogguides.com/dt3f.htm

    它有点旧了。但它应该起作用。