Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как правильно запустить видео в плеере из своей программы?


Kitty

Вопрос

На планшете c Андроид 4.4.2 установлены root права. Из андроид маркета установлен MX плеер. В плеере установлена настройка, что он открывает на постоянной основе файлы mp4. Я пытаюсь из своей программы запустить на выполнение файл mp4. Для примера помещаю нужный мне файл mp4 в папку download. Код такой:

  //C++ Builder XE6
  String VideoFileName = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDownloadsPath(), "file1.mp4");
  if(FileExists(VideoFileName))
  {
      system(("open " + AnsiString(VideoFileName)).c_str());//ничего не происходит
      ShowMessage(VideoFileName);// /mnt/internal_sd/Download/file1.mp4
  }
  else
  {
      //сюда не попадаем
      ShowMessage(L"Не найден видео файл " + VideoFileName + L". Программа будет закрыта.");
      Application->Terminate();
  }

Ничего не происходит. Видео не воспроизводится. Как правильно?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Kitty

 

Не уверен что так можно делать а Android. Тут, как и многое другое, надо юзать через Intent-ы (намерения).

Рыться надо по сему поводу на сайтах/форумах по программированию на Android. Ибо в мануалах и демках BDS это скудно освещено.

Ссылка на комментарий
  • 0
  • Администраторы

Собственно говоря, Android - хоть и linux подобная система, но команда System не распространяется на проигрывание видео в стандартном видео плейeре.

 

Поэтому как правильно заметил konung, проигрывание видео файла в стандартном проигрывателе на платформе Андроид осуществляется при помощи намерений (Intent).

uses
  Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Net, Androidapi.Helpers, FMX.Helpers.Android;

{$R *.fmx}

procedure PlayVideo(const AFileName: string);
var
  Intent: JIntent;
  Data: JNet_Uri;
begin
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
  Data := StrToJURI(AFileName);
  Intent.setDataAndType(Data, StringToJString('video/avi'));
  SharedActivity.startActivity(Intent);
end;
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...