Однако было найдено решение и в продолжение темы вопрос решен так:
1. Воспользуемся советом Nix0N и используем PAS файл из той темы.
2. Чтобы в C++ Builder XE6 можно было корректно использовать killBackgroundProcesses, в PAS файл вносим изменения любезно предоставленные Hugh Xiao. Источник обсуждения тут:
//------------------------------------------------
// RegisterTypes added by Hugh Xiao : qs.xiao@gamil.com 2014-07-20 Taiwan Time
procedure RegisterTypes;
begin
TRegTypes.RegisterType('Androidapi.JNI.ActivityManager.JDebug_MemoryInfo', TypeInfo(Androidapi.JNI.ActivityManager.JDebug_MemoryInfo));
end;
initialization
RegisterTypes;
// end by Hugh
//---------------------------------------------------
3. Теперь запускаем MX плеер по расписанию кодом, при котором предыдущий экземпляр видео уничтожается и таким образом программа не вываливается из памяти:
//запуск PlayVideo из таймера Timer1
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 необходим код от Hugh Xiao
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));
//Важные две строки совет от rlebeau разработчика Indy
Intent->setPackage(PackageName);
Intent->addFlags(TJIntent::JavaClass->FLAG_ACTIVITY_CLEAR_TOP | TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK | TJIntent::JavaClass->FLAG_ACTIVITY_NO_HISTORY);
//Application->ProcessMessages();
//Sleep(2000);
SharedActivity()->startActivity(Intent);//старт нового видео
}
catch(Exception &E)
{
ShowMessage( E.ClassName() + " " + E.Message);
Application->Terminate();
}
}
В архиве правильный PAS и HPP, включая тестовый пример на С++.
Вопрос
Kitty
Тема была закрыта: http://fire-monkey.ru/topic/230-zapusk-video-po-raspisaniiu-v-pleere-na-androide/
Однако было найдено решение и в продолжение темы вопрос решен так:
1. Воспользуемся советом Nix0N и используем PAS файл из той темы.
2. Чтобы в C++ Builder XE6 можно было корректно использовать killBackgroundProcesses, в PAS файл вносим изменения любезно предоставленные Hugh Xiao. Источник обсуждения тут:
http://bcbjournal.org/forums/viewtopic.php?f=10&t=2496&sid=b33b673eeb80f12f15a169a58e55cc67&start=15
Код:
3. Теперь запускаем MX плеер по расписанию кодом, при котором предыдущий экземпляр видео уничтожается и таким образом программа не вываливается из памяти:
В архиве правильный PAS и HPP, включая тестовый пример на С++.
Androidapi.JNI.ActivityManager.zip
Ссылка на комментарий
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.