如何使用私有目录中的Delphi XE5在Android上播放视频文件

时间:2014-03-12 11:08:30

标签: android delphi video delphi-xe5

我正在使用Delphi XE5和Firemonkey构建一个播放视频文件的Android应用程序: 这段代码正在运行:

var
  Intent: JIntent;
  fChosenVideo : string;
  Data: Jnet_Uri;


  fChosenVideo := IncludeTrailingPathDelimiter(TPath.GetSharedDownloadsPath) + 'myVideo.mp4';
  Data := TJnet_Uri.JavaClass.parse(StringToJString('file://' + fChosenVideo));
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setDataAndType(Data, StringToJString('video/mp4'));
  SharedActivity.startActivity(Intent);

但我真的希望它可以从应用私人文件夹中播放:

  fChosenVideo := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath)+'myMovie.mp4';

我发现我应该能够设置权限,以便外部应用程序可以通过在某处设置MODE_WORLD_READABLE来读取文件,但我似乎无法掌握如何实现此目的。

感谢任何帮助。 提前致谢 Jens Fudge

1 个答案:

答案 0 :(得分:1)

您的问题已经回答here
将文件放到公共场所后,您可能希望更改MODE_WORLD_READABLE等属性。 在德尔福你用这样的东西来做这件事:

var
  xFas: TFileAttributes;
begin
  sFnExt = '/sdcard/file1.mp4';
  xFas:= System.IOUtils.TFile.GetAttributes(sFnExt);
  Include(xFas,TFileAttribute.faOthersRead);
  System.IOUtils.TFile.SetAttributes(sFnExt,xFas);