Delphi XE 无法在 Android 设备上播放声音
Delphi XE Can't play sounds on Android device
我使用 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 上时,它不会播放任何声音,而且我仍然无法找到在 [=21] 上播放声音的很好解释的方法=] 来自我的资源。最好的方法是什么?
感谢@RemyLebeau 指出我需要使用
找到我的资源路径
TPath.Combine(TPath.GetDocumentsPath, 'filename') { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename') { External }
如果我部署到 android,但文件仍然不能 运行,然后我意识到我正在使用 .mp3 和 .wav。 我将它们转换为 .3gp,现在 android.
上的声音效果很好
我使用 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 上时,它不会播放任何声音,而且我仍然无法找到在 [=21] 上播放声音的很好解释的方法=] 来自我的资源。最好的方法是什么?
感谢@RemyLebeau 指出我需要使用
找到我的资源路径TPath.Combine(TPath.GetDocumentsPath, 'filename') { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename') { External }
如果我部署到 android,但文件仍然不能 运行,然后我意识到我正在使用 .mp3 和 .wav。 我将它们转换为 .3gp,现在 android.
上的声音效果很好