Ingalime Опубликовано 22 сентября, 2020 Поделиться Опубликовано 22 сентября, 2020 (изменено) Подскажите, пожалуйста, можно ли воспроизводить аудио поток в FMX, если известен статический адрес и порт -> IP:порт? Спасибо. Изменено 22 сентября, 2020 пользователем Ingalime Цитата Ссылка на комментарий
0 OnePeople Опубликовано 16 марта, 2021 Поделиться Опубликовано 16 марта, 2021 Audiofocus отлавливать, пример могу через пару часиков скинуть, а лучше сами в справке Гугла посмотрите Alexandr 1 Цитата Ссылка на комментарий
0 Alexandr Опубликовано 16 марта, 2021 Поделиться Опубликовано 16 марта, 2021 2 часа назад, OnePeople сказал: Audiofocus отлавливать, пример могу через пару часиков скинуть, а лучше сами в справке Гугла посмотрите Если не трудно, напишите, как это сделать. И вопрос, а почему в андроид 7 всё нормально отрабатывает? Цитата Ссылка на комментарий
0 OnePeople Опубликовано 16 марта, 2021 Поделиться Опубликовано 16 марта, 2021 (изменено) По поведению на различных прошивках я не могу вам ни чего сказать вообще не думаю что это связанно с версией андроида, а связанно с прошивкой вендора. Выдернул из рабочего проекта, строго не пинать, за корявость) 1. type {$IFDEF ANDROID} TMyAudioFocusChangeListener = class; {$ENDIF} TForm1 = class(TForm) 2. private { Private declarations } {$IFDEF ANDROID} afChangeListener: TMyAudioFocusChangeListener; 3. public 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; 4. 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 Form1.Memo2.Lines.Add('focus change:'+focusChange.ToString); if (focusChange=TJaudioManager.JavaClass.AUDIOFOCUS_LOSS) then begin MusicControl.AudioFocus:=false; case MusicControl.MusicType of TMusicType.Music: if MusicControl.Music.MusicState=TMusicState.Play then begin MusicPlayPause; exit; end; TMusicType.Radio: if MusicControl.Radio.MusicState=TMusicState.Play then begin RadioPlayPause; exit; end; end; end; end; 5. procedure TForm1.GetAudioFocus; begin // {$IFDEF ANDROID} 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 LogCAAdd('AUDIOFOCUS_REQUEST_DELAYED') else if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_GRANTED then begin MusicControl.AudioFocus:=true; LogCAAdd('AUDIOFOCUS_REQUEST_GRANTED'); end else if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_DELAYED then LogCAAdd('AUDIOFOCUS_REQUEST_DELAYED'); end ); {$ENDIF} end; P.S. Для android 8 выше! для поддержки ранешних версий Android нужно немного дописать Изменено 16 марта, 2021 пользователем OnePeople Alexandr и Ingalime 1 1 Цитата Ссылка на комментарий
0 Alexandr Опубликовано 16 марта, 2021 Поделиться Опубликовано 16 марта, 2021 Спасибо за пример! 3-й пункт показывает ошибку : onAudioFocusChange Подчёркивает красным Цитата Ссылка на комментарий
0 OnePeople Опубликовано 16 марта, 2021 Поделиться Опубликовано 16 марта, 2021 4 минуты назад, Alexandr сказал: Спасибо за пример! 3-й пункт показывает ошибку : onAudioFocusChange Подчёркивает красным Ошибку чего??? Вы создаете процедуру, с именем каким вы хотите, как это может быть ошибкой, проверяйте синтаксис Alexandr 1 Цитата Ссылка на комментарий
0 Alexandr Опубликовано 16 марта, 2021 Поделиться Опубликовано 16 марта, 2021 Копирую вот это в паблик public procedure onAudioFocusChange(focusChange: Integer); end; И Он мне Подчёркивает красным onAudioFocusChange Цитата Ссылка на комментарий
0 Alexandr Опубликовано 17 марта, 2021 Поделиться Опубликовано 17 марта, 2021 22 часов назад, OnePeople сказал: Ошибку чего??? Вы создаете процедуру, с именем каким вы хотите, как это может быть ошибкой, проверяйте синтаксис Процедуру получилось объявить, теперь дальше начинает ругаться. Можете скинуть код до implementation? Цитата Ссылка на комментарий
Вопрос
Ingalime
Подскажите, пожалуйста, можно ли воспроизводить аудио поток в FMX, если известен статический адрес и порт -> IP:порт?
Спасибо.
Изменено пользователем IngalimeСсылка на комментарий
Лучшие авторы в вопросе
12
11
48
5
Популярные дни
29 сент
16
23 окт
11
5 окт
9
2 окт
6
Лучшие авторы в вопросе
krapotkin 12 постов
OnePeople 11 постов
Ingalime 48 постов
Alexandr 5 постов
Популярные дни
29 сент 2020
16 постов
23 окт 2020
11 постов
5 окт 2020
9 постов
2 окт 2020
6 постов
Популярные посты
krapotkin
в оригинале нет такого слова AApplication посмотрите, что реально загрузилось обратите внимание, что delphi в 2021 все еще не умеет считать символы если перевод строки #10 а не #13#10
OnePeople
По поведению на различных прошивках я не могу вам ни чего сказать вообще не думаю что это связанно с версией андроида, а связанно с прошивкой вендора. Выдернул из рабочего проекта, строго не пина
Tumaso
А причем тут твой фаервол? Вопрос совсем о другом, о принципиальной возможности воспроизведения аудиопотока с указаного адреса/порта в FMX Стандартный TMediaPlayer из FMX полное убожесто, не раб
Изображения в теме
82 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.