如何在没有相关应用程序的情况下直接播放声音文件(mp3,wav等)?

时间:2009-07-17 09:21:17

标签: delphi winapi audio

我还需要能够控制它的音量。 另外,如何控制系统音量,检测低音量或静音状态?

5 个答案:

答案 0 :(得分:2)

使用Shoban的链接来播放声音。

以下是如何控制设备的音量:

uses MMSystem;

type
   TVolumeRec = record
     case Integer of
       0: (LongVolume: Longint) ;
       1: (LeftVolume, RightVolume : Word) ;
     end;

const DeviceIndex=5
       {0:Wave
        1:MIDI
        2:CDAudio
        3:Line-In
        4:Microphone
        5:Master
        6:PC-loudspeaker}

procedure SetVolume(aVolume:Byte) ;
var 
  Vol: TVolumeRec;
begin
   Vol.LeftVolume := aVolume shl 8;
   Vol.RightVolume:= Vol.LeftVolume;
   auxSetVolume(UINT(DeviceIndex), Vol.LongVolume) ;
end;

function GetVolume:Cardinal;
var 
  Vol: TVolumeRec;
begin
   AuxGetVolume(UINT(DeviceIndex),@Vol.LongVolume) ;
   Result:=(Vol.LeftVolume + Vol.RightVolume) shr 9;
end;

答案 1 :(得分:2)

如果这是非商业用途,BASS图书馆是免费的,并为您提供您正在寻找的控件。

3DBuzz上有免费视频教程,其中一个是创建自己的MP3播放器。它们位于首页的视频类别列表中。

答案 2 :(得分:1)

看一下这篇文章:Your first MP3 Delphi player。它使用TMediaPlayer来播放mp3文件。不完全是你想要的,但这是一个非常好的起点。

答案 3 :(得分:0)

只需使用MM apis(MSDN和谷歌上的大量样本)

答案 4 :(得分:-3)

char *mp3FilePath    = ...   ;
char *workingDirPath = ...   ;
ShellExecute(hwnd, "open", mp3FilePath, NULL, workingDirPath, SW_SHOWNORMAL);