gpt4 book ai didi

android - 在 firemonkey 中播放声音

转载 作者:行者123 更新时间:2023-12-05 00:09:50 24 4
gpt4 key购买 nike

我使用 Firemonkey 部署一个带有音频文件的 Android 应用程序。我有大约 30 个动物按钮,当用户选择每个按钮时,每个按钮都会听到动物的声音。这是第一个按钮的代码:

procedure TFMain.buttonLionClick(Sender: TObject);
begin
MediaPlayer1.FileName := 'D:\lion.mp3';
MediaPlayer1.Play;
end;

但是失败了。如何将声音部署到我的应用程序中?

最佳答案

首先,如果您想为 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;

注意:你需要这样做,因为你不能直接从你的资源播放你的文件,当部署到 android 时,你的资源将被保存。

现在播放音乐只需使用例如:PlayAudio('Resource_1')

注意:在播放新音频之前,您需要使用以下命令停止前一个音频:

MediaPlayer1.Stop;
MediaPlayer1.Clear;

如果你想循环你的音乐,那么你可以使用 TTimer 在它结束后重播你的声音。

注意:这只适用于 android。在 Windows 上使用 .mp3、.wav 或类似的文件和 TPath.Combine(TPath.GetTempPath, 'tmp.wav') 获取您在 Windows 上的路径。

关于android - 在 firemonkey 中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com