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

TMediaPlayer не запускает видео в некоторых версиях Андроида


Kitty

Вопрос

У меня есть код который просто запускает видео файл.

MediaPlayer1->Play();

На планшете с Андроид 4.4.2 все нормально никаких проблем. Видео запускается.

 

На планшете с Андроид 4.1 ничего не происходит. Видео файл не запускается. Нажимаю Button c кодом MediaPlayer1->Play(); и тишина. Тот же самый код, тот же самый видео файл. Такая же проблема на Андроид 4.2 на устройстве iconBIT (HD-медиаплеер).

 

Может работа TMediaPlayer возможна только в последних версиях Андроида?

 

С++ Builder XE 6.

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

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

  • 0

Я так понимаю там идет чтение списка запущенных процессов. Да, пожалуй не подойдет.

Я не ориентируюсь на стандартный плеер. Если можно было из программы запустить MX плеер, то мне тоже подошло бы.

Ссылка на комментарий
  • 0
Я не ориентируюсь на стандартный плеер. Если можно было из программы запустить MX плеер, то мне тоже подошло бы.

 

Код ниже по таймеру убивает МХ плеер и запускает его с новым именем файла:

void PlayVideo(const String AFileName)
{
  try
  {
	//MX player: https://sites.google.com/site/mxvpen/api
	_di_JString PackageName = StringToJString(L"com.mxtech.videoplayer.ad");
	_di_JActivityManager activityManager = GetActivityManager();//GetActivityManager определено в pas файле по ссылке выше
	activityManager->killBackgroundProcesses(PackageName);

	String EXE = System::Ioutils::TPath::GetExtension(AFileName);
	_di_JIntent Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW);
	_di_Jnet_Uri Data = StrToJURI(AFileName);
	Intent->setDataAndType(Data, StringToJString(L"video/" + EXE));

	Intent->setPackage(PackageName);
	Intent->addFlags(TJIntent::JavaClass->FLAG_ACTIVITY_CLEAR_TOP | TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK | TJIntent::JavaClass->FLAG_ACTIVITY_NO_HISTORY);

	SharedActivity()->startActivity(Intent);
  }
 catch(Exception &E)
	{
	 StopTimers();
	 ShowMessage(L"Произошла ошибка в PlayVideo. Класс ошибки: " + E.ClassName() + L"\nСообщение ошибки: " + E.Message + L"\nПрограмма будет закрыта.");
	 Application->Terminate();
	}
}
Ссылка на комментарий
  • 0
Цитата

Кто нибудь может помочь в переводе этого кода на делфи?

Перевод кода на Delphi:

procedure TMainForm.PlayVideo(AFileName: String);
var
EXE: String;
PackageName: JString;
activityManager: JActivityManager;
Intent: JIntent;
Data: Jnet_Uri;

begin
  try

	//MX player: https://sites.google.com/site/mxvpen/api
	PackageName := StringToJString('com.mxtech.videoplayer.ad');
	activityManager := TJActivityManager.Wrap(TAndroidHelper.Context.getSystemService(TJContext.JavaClass.ACTIVITY_SERVICE));
	activityManager.killBackgroundProcesses(PackageName);  // <<-- requires entitlement enabled in project settings

	EXE := System.Ioutils.TPath.GetExtension(AFileName);
	Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
	Data := StrToJURI('file://' + AFileName);
	Intent.setDataAndType(Data, StringToJString('video/' + EXE));

	Intent.setPackage(PackageName);
	Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP or TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY);

  //SharedActivity().startActivity(Intent);
  SharedActivity.startActivity(Intent);

 except
//    on E: Exception do ErrorDialog(E.Message, E.HelpContext);
	 Application.Terminate();
  end;
end;

Не забудьте добавить в файл манифеста:

Цитата

https://stackoverflow.com/questions/27235913/delphi-launching-external-application-no-activity-found
Some content of the Manifest file of the application to be launched:

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

 

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...