[英]What databases for Mac are directly supported by the FireMonkey framework in Delphi XE2?
[英]Is there any WAV sound playback on Mac from Delphi XE2?
是否有關於如何在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;
我正在從內存加載WAV文件頭和數據,它可以與OpenAL一起使用。 所以問題出在我的NSSound用法中。 有誰能在Mac上提供Delphi XE2聲音播放的一些工作示例?
Freepascal / Lazarus有一個名為“macosall.pas”的單元,它是os-x C ++頭文件到pascal的翻譯,允許你調用本機的os-x函數。
遺憾的是,這個單元不是delphi的一部分,但是通過打開單元,你可以將函數聲明復制到delphi,它應該可以工作。
我希望你能在quicktime API中找到你需要的東西,它是蘋果機器上媒體的中心樞紐。 另請查看Apple開發人員並查看文檔。
不妨將其作為答案發布,以防萬一:
試過,嘗試過initFromFile(path_to_aiff)
..沒有任何幫助。 所以我終於切換到了OpenAL。
也許在未來Embarcadero修復了訪問NSSound的特定方式,但是現在OpenAL效果最好。 此外,OpenAL是跨平台的,這意味着我可以在Win和Mac上使用相同的聲音代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.