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

Posted

技术标签:

【中文标题】如何在没有关联应用程序的情况下直接播放声音文件(mp3、wav 等)?【英文标题】:How can I play sound file (mp3,wav,etc) directly with no associated application? 【发布时间】:2009-07-17 09:21:17 【问题描述】:

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

【问题讨论】:

【参考方案1】:

使用 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;

【讨论】:

【参考方案2】:

如果这是用于非商业用途,BASS 库是免费的,可为您提供所需的控制。

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

只需使用 MM api(MSDN 和 google 上的大量示例)

【讨论】:

【参考方案5】:
char *mp3FilePath    = ...   ;
char *workingDirPath = ...   ;
ShellExecute(hwnd, "open", mp3FilePath, NULL, workingDirPath, SW_SHOWNORMAL);

【讨论】:

以上是关于如何在没有关联应用程序的情况下直接播放声音文件(mp3、wav 等)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不更改声音指示器的情况下在 iOS 中以最大音量播放声音文件

如何在没有任何中断的情况下循环播放音频文件?

在没有外部模块的情况下在 Python 中播放声音?

HTML:如何在不缓冲所有声音数据的情况下从 URL 中间文件开始声音播放

在不中断音频的情况下播放视频 - 目标 c

如何在c ++中播放声音[关闭]