【问题标题】:How to play system sound in Delphi FireMonkey XE4?如何在 Delphi FireMonkey XE4 中播放系统声音?
【发布时间】:2013-09-02 15:39:21
【问题描述】:

我想在 Windows 和 MAC OS X 中播放系统声音。要在 Windows 中播放声音,使用 something 像这样:

PlaySound('C:\Windows\Media\Windows Default.wav', 0, SND_FILENAME + SND_ASYNC);

我确定我必须使用 TMediaPlayer。

【问题讨论】:

  • 在 Windows system 声音必须以PlaySound('SystemStart', 0, SND_ALIAS) 播放。

标签: delphi audio firemonkey delphi-xe4


【解决方案1】:

您是对的,您可以使用TMediaPlayer 组件,文档明确指出:

TMediaPlayer 播放音频文件和视频的音频组件 文件。

指定当前TMediaPlayer要播放的媒体文件, 设置 FileName 属性。文件名必须包含 文件,因此可以在内存和扩展名上进行本地化。称呼 PlayStop 方法开始播放媒体文件,或停止或 暂停正在运行的媒体文件。当前位置是通过指定的 当前时间属性。

TMediaPlayer 也暴露了媒体文件 持续时间、视频大小、音量或状态等属性。

关于支持的文件格式(TMediaCodecManager).

文档说明如下:

使用 TMediaCodecManager 访问、管理和注册编解码器 播放媒体文件时使用。

支持的媒体文件格式是每个文件的原生格式 平台:

对于 Windows:
音频格式:.wma、.mp3、.wav
视频格式:.avi,.wmv

对于 Mac OS/iOS:
音频格式:.mp3、.caf
视频格式:.mov、.m4v、.mp4

使用 TMediaCodecManager,可以注册自定义 媒体编解码器以扩展音频/视频功能支持。

快速示例:

procedure TForm1.Button1Click(Sender: TObject);
begin
 MediaPlayer1.FileName := 'D:\test.mp3';
 MediaPlayer1.Play;
end;

您应该能够跨平台在 Firemonkey 中播放 mp3 文件,但这超出了本问题的范围。

【讨论】:

  • 啊,所以,一些{$IFDEF MSWINDOWS} WindowsPath {$ELSE} MacOSXPath {$ENDIF MSWINDOWS} 我虽然有一些MediaPlayer1.FileName := TSound.SystemQuestion; 之类的。
  • @PeterVonča 我相信他的意思是他认为会有常量指向适当的系统声音,这样就不需要 IFDEF。我感到困惑的是“注意:要使用 TMediaPlayer 在您的 iOS 设备上播放音频文件,请使用以下任一格式:Windows 上的 .wav | iOS 和 Mac OS X 上的 .caf” - 播放 MP3 怎么样还是更标准的格式?
  • @alcalde,TMediaPlayer 接受默认的注册格式,但您可以通过 TMediaCodecManager 添加更多。
  • @alcalde,另外,你可以很好地播放 mp3 文件,TMediaPlayer 参考文档似乎缺少或不完整,但是 TMEdiaCodecManager 确实声明你可以播放 mp3 音频文件,我已经测试过它。
  • Function TForm1.PlaySound: Boolean; Begin {$IFDEF MSWINDOWS} MediaPlayer1.FileName := 'C:\Windows\Media\Windows Default.wav'; {$ENDIF} {$IFDEF MACOS} MediaPlayer1.FileName := '/System/Library/Sounds/Sosumi.aiff'; {$ENDIF} if FileExists(MediaPlayer1.FileName) then begin MediaPlayer1.Play; Result := True; end else Result := False; End;
猜你喜欢
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2019-11-03
  • 2022-12-24
  • 2012-09-07
  • 2012-07-17
相关资源
最近更新 更多