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

OnePeople

Пользователи
  • Постов

    151
  • Зарегистрирован

  • Посещение

  • Победитель дней

    26

OnePeople стал победителем дня 8 сентября

OnePeople имел наиболее популярный контент!

2 Подписчика

Посетители профиля

6 398 просмотров профиля
  1. if (focusChange=TJaudioManager.JavaClass.AUDIOFOCUS_LOSS) or (focusChange=TJaudioManager.JavaClass.AUDIOFOCUS_LOSS_TRANSIENT)
  2. var FAudioService: JObject; FAudioManager: JAudioManager; в OnCreate {$IFDEF ANDROID} if FAudioService=nil then begin FAudioService:= TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE); if FAudioService <> nil then begin FAudioManager := TJAudioManager.Wrap((FAudioService as ILocalObject).GetObjectID); end; end; {$ENDIF} Не знаю чем вам помочь, на какую строку ругается?
  3. Скиньте проект посмотреть
  4. Тут вы делаете что хотите, хоть обращаетесь к визуальным компонентам хоть нет, главное чтобы вы остановили воспроизведение!
  5. в OnCreate {$IFDEF ANDROID} if FAudioService=nil then begin FAudioService:= TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE); if FAudioService <> nil then begin FAudioManager := TJAudioManager.Wrap((FAudioService as ILocalObject).GetObjectID); end; end; {$ENDIF} Общая переменная var FAudioManager: JAudioManager;
  6. Androidapi.JNI.Os; Мой лог вам не нужно Каждый раз когда запускаете проигрывание файла
  7. Crony Auto - Лаунчер, целью которого является обеспечение удобства, целостности дизайна и обеспечение достаточного функционала для работы без использования стандартных приложений вашей Android магнитолы. Основные возможности: - Просмотр, запуск и удаление приложений - Прослушивание аудио с памяти устройства или плейлистов радио онлайн - Работа как в режиме воспроизведения с флешки, так и создание плейлистов - Просмотр погоды - Работа с OBD2 по Bluetooth - Виджет яндекс-навигации с указанием пути движения - Темы оформления Текущая версия: 0.4.0.402 Ссылка на приложение: 4PDA
  8. А зачем это всё? В style.xml <item name="android:windowTranslucentStatus">false</item> В OnCreate TAndroidHelper.Activity.getWindow.setFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_LAYOUT_NO_LIMITS, TJWindowManager_LayoutParams.JavaClass.FLAG_LAYOUT_NO_LIMITS); TAndroidHelper.Activity.getWindow.getDecorView.setFitsSystemWindows(false); TAndroidHelper.Activity.getWindow.setStatusBarColor($00000000);
  9. Правильнее через аудио фокус!
  10. Ну смотрите, вообще любой нормальный плеер когда начинает играть запрашивает фокус себе, чтобы другие приложения приостановили проигрывание, когда происходит звонок приложение телефон также забирает аудио фокус себе, ваше задача отловить этот момент, при внедрении этого кода, ваше приложение будет останавливать проигрывание когда потеряет фокус. Во первых это единственно правильный метод. Во вторых ваше приложение будет останавливать проигрывание и при запуске видео в Ютуб, или входящем звонке с мессенджеров.
  11. Вам не нужно этого делать, вам нужно обрабатывать потерю аудиофокуса. Код корявый лень в порядок приводить... type TMyAudioFocusChangeListener = class; // Создаем класс прослушивания фокуса аудио TForm1 = class(TForm) ... private { Private declarations } afChangeListener: TMyAudioFocusChangeListener; Создаем переменную прослушивания фокуса аудио ... public procedure GetAudioFocus; procedure onAudioFocusChange(focusChange: Integer); end; TAudioFocusChangeEvent = procedure(focusChange: Integer) of object; // описания события изменения фокуса TMyAudioFocusChangeListener = class(TJavaLocal, JAudioManager_OnAudioFocusChangeListener) // описание класса прослушивания фокуса аудио private [weak] FParent : TForm1; FOnAudioFocusChanged: TAudioFocusChangeEvent; public constructor Create(AParent : TForm1); property OnAudioFocusChanged: TAudioFocusChangeEvent read FOnAudioFocusChanged write FOnAudioFocusChanged; Destructor Destroy; Override; procedure onAudioFocusChange(focusChange: Integer); cdecl; end; var Form1: TForm1; AuFocus: JAudioManager_OnAudioFocusChangeListener; JAudioManagerListener: TMyAudioFocusChangeListener; implementation constructor TMyAudioFocusChangeListener.Create; // создание класса begin inherited Create; FParent := AParent; end; destructor TMyAudioFocusChangeListener.Destroy; // уничтожение класса begin inherited; end; procedure TMyAudioFocusChangeListener.onAudioFocusChange(focusChange: Integer); // событие изменения фокуса begin if Assigned(FOnAudioFocusChanged) then begin FOnAudioFocusChanged(focusChange); // передача события изменения фокуса end; FParent.onAudioFocusChange(focusChange); // вызов процедуры изменения фокуса формы end; procedure TForm1.onAudioFocusChange(focusChange: Integer); //процедура изменения фокуса формы begin if (focusChange=TJaudioManager.JavaClass.AUDIOFOCUS_LOSS) then // фокус потерян begin // music stop // действия если фокус потерян end; end; procedure TForm1.GetAudioFocus; // получаем фокус для своего приложения begin CallinUIThread(procedure var AudioFocusRequest: JAudioFocusRequest; playbackAttributes: JAudioAttributes; afHandler: JHandler; res: integer; begin afChangeListener := TMyAudioFocusChangeListener.Create(Self); // создаем класс прослушивания аудио фокуса для своего приложения afHandler := TJHandler.Create; // создаем указатель своего приложения playbackAttributes := TJAudioAttributes_Builder.Create // создаем параметры прослушивания аудио фокуса .setUsage(TJAudioAttributes.JavaClass.USAGE_MEDIA) .setContentType(TJAudioAttributes.JavaClass.CONTENT_TYPE_MUSIC) .build(); AudioFocusRequest := TJAudioFocusRequest_Builder(TJAudioManager.JavaClass.AUDIOFOCUS_GAIN).Create // создаем запрос с параметрами прослушивания аудио фокуса .setAudioAttributes(playbackAttributes) .setAcceptsDelayedFocusGain(true) .setOnAudioFocusChangeListener(afChangeListener, afHandler) .build(); res := FAudioManager.requestAudioFocus(AudioFocusRequest); // непосредственно запрашиваем фокус if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_DELAYED then // отказано else if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_GRANTED then begin //фокус получен LogCAAdd('AUDIOFOCUS_REQUEST_GRANTED'); end else if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_FAILED then // отказано LogCAAdd('AUDIOFOCUS_REQUEST_FAILED'); end ); end;
  12. Напишите полный код что за куски? Так быстрее будет понятно что не так
  13. А такое дальше не идёт Path1.Data.ClosePath? Если есть, уберите.
  14. Ну тут нужно смотреть справку по svg формату, код вашей отрисовки скинте
  15. var item: tlistboxitem; i:integer; begin ComboBox1.Clear; for i := 1 to 2 do begin item := tlistboxitem.Create(nil); ComboBox1.Items.AddObject(inttostr(i), item); end; end; Так тоже работает
×
×
  • Создать...