Alc*_*lca 2 delphi android media-player firemonkey
我使用 Firemonkey 来部署一个带有音频文件的 android 应用程序。我有大约 30 个动物按钮,当用户选择它时,每个按钮都会听到动物的声音。这是我的第一个按钮的代码:
procedure TFMain.buttonLionClick(Sender: TObject);
begin
MediaPlayer1.FileName := 'D:\lion.mp3';
MediaPlayer1.Play;
end;
Run Code Online (Sandbox Code Playgroud)
但它失败了。如何将声音部署到我的应用程序中?
首先,如果您想为 android 构建您的应用程序,您需要将 .mp3 转换为 .3gp 才能播放它。(您可以使用此网站:http : //video.online-convert.com/convert-to-3gp;只需上传您的文件并单击转换。)
其次,您需要在资源中包含您的文件;转到项目>资源和图像,然后选择查看所有文件,然后选择您的 .3gp 文件并添加它们。
现在您可以制作一个程序来播放您的资源中的声音和音乐:(使用 TMediaPlayer)
procedure TForm1.PlayAudio(ResourceID: string); //PLAY MUSIC FROM RESOURCES
var
ResStream: TResourceStream;
TmpFile: string;
begin
ResStream := TResourceStream.Create(HInstance, ResourceID, RT_RCDATA);
try
TmpFile := TPath.Combine(TPath.GetDocumentsPath, 'tmp.3gp');
//TPath.Combine(TPath.GetDocumentsPath, 'filename') { Internal }
//TPath.Combine(TPath.GetSharedDocumentsPath, 'filename') { External }
ResStream.Position := 0;
ResStream.SaveToFile(TmpFile);
MediaPlayer1.FileName := TmpFile;
MediaPlayer1.Play;
finally
ResStream.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
注意:你需要这样做,因为你不能直接从你的资源中播放你的文件,部署到 android 时你的资源将保存在这些资源中。
现在播放音乐只需使用例如: PlayAudio('Resource_1')
注意:在播放新音频之前,您需要使用以下命令停止上一个:
MediaPlayer1.Stop;
MediaPlayer1.Clear;
Run Code Online (Sandbox Code Playgroud)
如果你想循环播放你的音乐,那么你可以使用 TTimer 在它结束后重播你的声音。
注意:这特别适用于 android。在 Windows 上使用 .mp3、.wav 或类似的文件,并TPath.Combine(TPath.GetTempPath, 'tmp.wav')在 Windows 上获取路径。
| 归档时间: |
|
| 查看次数: |
5084 次 |
| 最近记录: |