我使用TMediaPlayer并执行以下步骤:
procedure TForm1.PlayAudio(ResourceID: string);
var
ResStream: TResourceStream;
TmpFile: string;
begin
ResStream := TResourceStream.Create(HInstance, ResourceID, RT_RCDATA);
try
//TmpFile := TPath.Combine(TPath.GetTempPath, 'tmp.wav');
TmpFile :=(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'tmp.wav');
ResStream.Position := 0;
ResStream.SaveToFile(TmpFile);
MediaPlayer1.FileName := TmpFile;
MediaPlayer1.Play;
finally
ResStream.Free;
end;
end;
播放来自我的资源的声音:PlayAudio('Resource_1');
是.wav和.mp3
它在Windows上工作正常但是当我在Android上部署它时它不会播放任何声音,我仍然找不到很好的解释方法从我的资源上播放Android上的声音。这样做的最佳方式是什么?
答案 0 :(得分:0)
感谢@RemyLebeau指出我需要使用
找到我的资源路径TPath.Combine(TPath.GetDocumentsPath, 'filename') { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename') { External }
如果我部署到android,但文件仍无法运行,然后我意识到我使用的是.mp3和.wav。 我将它们转换为.3gp,现在声音在android上运行得很好。