You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi FireMonkey iOS应用中存储与播放媒体文件?

iOS下FireMonkey(Delphi 10.1 Berlin)音频文件的存储与播放方案

结合你已经掌握的部署步骤,我来详细拆解iOS平台的具体操作和代码实现:

一、确认部署配置(关键!)

你已经知道用Project | Deployment面板添加文件,但iOS的Remote Path必须设置正确,才能让应用访问到音频文件:

  • 选择iOS Device平台,添加你的MP3文件后,将Remote Path设置为Documents(这是应用沙箱里的可读写目录,能确保应用正常读取文件)
  • 确保Local Path指向你本地的MP3文件,Remote Name保持和本地文件名一致(iOS区分大小写,别写错!)

二、获取音频文件的正确路径

iOS应用运行在沙箱中,路径是动态生成的,不能硬编码。用Delphi的System.IOUtils.TPath类来获取Documents目录的绝对路径,再拼接你的音频文件名:

uses System.IOUtils, FMX.Media;

function GetAudioFilePath(const FileName: string): string;
begin
  // 获取应用沙箱的Documents目录路径
  Result := TPath.Combine(TPath.GetDocumentsPath, FileName);
end;

三、用TMediaPlayer播放音频

接下来就可以用你熟悉的TMediaPlayer来播放了,代码示例:

procedure TForm1.PlayAudioBtnClick(Sender: TObject);
var
  AudioPlayer: TMediaPlayer;
  AudioPath: string;
begin
  AudioPlayer := TMediaPlayer.Create(nil);
  try
    AudioPath := GetAudioFilePath('your_audio_file.mp3'); // 替换成你的实际文件名
    if TFile.Exists(AudioPath) then
    begin
      AudioPlayer.FileName := AudioPath;
      AudioPlayer.Play;
    end
    else
    begin
      ShowMessage('音频文件未找到,请检查部署配置!');
    end;
  finally
    // 如果需要长期播放,建议把AudioPlayer设为窗体成员变量,不要在这里直接释放
    // AudioPlayer.Free;
  end;
end;

四、必要的权限配置(iOS 10+)

从iOS 10开始,应用访问媒体资源需要在Info.plist中添加权限描述,否则可能会被系统禁止播放:

  1. 打开Project | Options,切换到Version Info选项卡
  2. 选择iOS平台,点击Add按钮,添加以下键值对:
    • 键:NSAudioUsageDescription
    • 值:需要播放音频内容(可以根据你的应用用途自定义描述)

五、额外注意事项

  • 文件名大小写:iOS是区分大小写的文件系统,代码里的文件名必须和部署的Remote Name完全一致
  • 文件格式兼容性:确保你的MP3文件是iOS支持的编码格式(比如MPEG-1 Layer 3,比特率建议在8-320kbps之间)
  • 后台播放(可选):如果需要后台播放音频,还要在Project | Options的Application选项卡中,勾选Background Modes里的Audio, AirPlay, and Picture in Picture选项,同时在代码中设置AudioPlayer.MediaPlayer.SetCategory(TCategory.Playback);(需要引用FMX.Media.iOS)

内容的提问来源于stack exchange,提问作者Al C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:53:20