我有以下代码:
uses
MMSystem;
procedure TForm3.AddSound;
var
hFind, hRes: THandle;
Song: PChar;
begin
hFind := FindResource(HInstance, 'Resource_1', RT_RCDATA);
if hFind <> 0 then begin
hRes:=LoadResource(HInstance, hFind);
if hRes <> 0 then begin
Song:=LockResource(hRes);
if Assigned(Song) then SndPlaySound(Song, snd_ASync or snd_Memory);
UnlockResource(hRes);
end;
FreeResource(hFind);
end;
end;
在按钮的OnClick
事件中调用此过程时,它在Windows中正常工作,但相同的代码不适用于Android。我收到以下错误:
[DCC致命错误] Unit3.pas(8):F2613单位&#39; MMSystem&#39;没找到。
答案 0 :(得分:1)
此代码在Android上不起作用,因为MMSystem
不是FireMonkey库中的跨平台单元。它是VCL库中仅限Windows的单元。移动项目必须仅使用FireMonkey,而不是VCL。
要在Android上播放声音,请查看FireMonkey的TMediaPlayer
组件。但是,它无法播放资源中的音频,因此您必须在应用旁边部署音频文件,然后从文件中播放。
有关详细信息,请参阅Embarcadero的Audio-Video in FireMonkey文档。