Delphi XE无法在Android设备上播放声音

时间:2016-01-22 10:14:19

标签: android delphi firemonkey delphi-xe8

我使用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上的声音。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

感谢@RemyLebeau指出我需要使用

找到我的资源路径
TPath.Combine(TPath.GetDocumentsPath, 'filename')  { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename')  { External }

如果我部署到android,但文件仍无法运行,然后我意识到我使用的是.mp3和.wav。 我将它们转换为.3gp,现在声音在android上运行得很好。