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声音播放的一些工作示例?
不妨将其作为答案发布,以防对任何人有帮助:
试过了,也试过了initFromFile(path_to_aiff)..没有任何帮助。所以我最终切换到了OpenAL。
也许将来 Embarcadero 会修复访问 NSSound 的特定方式,但目前 OpenAL 效果最好。此外,OpenAL 是跨平台的,这意味着我可以在 Win 和 Mac 上使用相同的声音代码。