在Delphi XE2的Mac上有没有WAV声音播放?

Kro*_*ica 5 delphi macos nssound delphi-xe2 firemonkey

是否有关于如何在Mac上使用Delphi XE2 FireMonkey构建的应用程序播放WAV文件的教程或示例?

我问,因为这段代码不起作用:

var
  //fWaves head and data is initialized and plays properly on Win through OpenAL
  fWaves: array of record 
    Head: TWAVHeaderEx;
    Data: array of byte;
  end;
  D: NSData;
  N: NSSound;
begin
  D := TNSData.Wrap(TNSData.Create.initWithBytes(@fWaves[0].Head, SizeOf(fWaves[0].Head) + fWaves[0].Head.DataSize));
  ShowMessage(IntToStr(D.length)); //--Length is correct
  N := TNSSound.Wrap(TNSSound.Create.initWithData(D));
  ShowMessage(FloatToStr(N.Duration)); //--Displays 0
  if N.play then
    ShowMessage('Yes')
  else
    ShowMessage('No'); //--Always returns NO
end;
Run Code Online (Sandbox Code Playgroud)

我正在从内存加载WAV文件头和数据,它可以与OpenAL一起使用.所以问题出在我的NSSound用法中.有谁能在Mac上提供Delphi XE2声音播放的一些工作示例?

Kro*_*ica 0

不妨将其作为答案发布,以防对任何人有帮助:

试过了,也试过了initFromFile(path_to_aiff)..没有任何帮助。所以我最终切换到了OpenAL。

也许将来 Embarcadero 会修复访问 NSSound 的特定方式,但目前 OpenAL 效果最好。此外,OpenAL 是跨平台的,这意味着我可以在 Win 和 Mac 上使用相同的声音代码。