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

Alex7wrt

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

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

  • Посещение

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

    31

Весь контент Alex7wrt

  1. Всем здравствуйте. Есть вопрос касательно кодировки языков интерфейса в среде Android Посредством следующего кода определяю язык интерфейса: if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(ls)) then lang:=ls.GetCurrentLangID; Для большинства языков возвращает стандартное ISO значение. Однако для испанского и португальского вместо es и pt возвращает соответственно sp и po. Версия Android 4.0.3. Собственно вопрос: так и есть для всех версий Android или это отклонения конкретной версии?
  2. Разобрался. Нужно объявлять объект типа JMediaPlayer. var Player: JMediaPlayer; ......................... Player:=TJMediaPlayer.Create; Player.setDataSource(StringToJString('URL_MP3_ФАЙЛА')); Player.prepare; Player.Start()
  3. Добрый день. Нашел информацию по работе с Android-овским API в области медиаплеера. В частности, в коде ниже речь идет о воспроизведении файла из URL. uses ...Androidapi.JNI.Media, Androidapi.Helpers; ... begin Player:=TJMediaPlayer.Create; Player.setDataSource(StringToJString('URL_MP3_ФАЙЛА')); Player.prepare; Player.Start() end; У меня же почему-то отутствуют методы и свойства setDataSource, prepare, Start(). Хотя вроде бы все модули подключены (по крайней мере те, что в этом коде указаны - точно). Собственно вопрос - почему так? На сам TJMediaPlayer.Create не ругается. UPD. Вот так на методы не ругается Player:=JMediaPlayer.Create; Player.setDataSource(StringToJString('URL_MP3_ФАЙЛА')); Player.prepare; Player.Start() Но ругается на JMediaPlayer.Create
  4. Это в Android или Windows? Проверять равенство этой переменной одному из стандартных значений http://docwiki.embarcadero.com/Libraries/XE8/en/System.Classes.TShiftState UPD. В Android присвоение key:=0 предотвращает стандартное действие для vkHardwareBack (Кстати, может key:=0 работает и для других клавиш. Подробно этот вопрос не рассматривал.)
  5. Можно. Покажите код.
  6. Аналогично. Просто проверять состояние TShiftState. Только клавиши Win там нет
  7. Спасибо за ответ. Действительно, часто не переводится в Stopped. Как это исправить меня также интересует. Сравнением Duration с CurrentTime у меня сейчас и реализовано, но думал, что можно сделать лучше...
  8. Добрый день. Здесь все написано http://delphifmandroid.blogspot.com/2013/10/android.html
  9. Всем здравствуйте! Необходимо отлавливать событие, когда музыкальный трек заканивает воспроизведение (причем, определять нужно точно). В медиаплеере такого события не нашел. Все, что придумал - это в таймере с маленьким интервалом (10-50 мс) выполнять проверку TMediaplayer.State = TMediaState.Stopped, но это довольно ресурсоемко, и все равно интервал великоват. Есть ли способ сделать так, чтобы по окончанию воспроизведения трека генерировалось это событие? Или есть ли нересурсоемкий способ зациклить воспроизведение трека с минимальной задержкой между циклами?
  10. Отличный код! Большое спасибо. Добавил еще определение максимального уровня громкости getStreamMaxVolume из AndroidApi, так как в разных версиях андроида может отличаться количество градаций громкости. Итого в событии формы обработки нажатий клавиш, определение уровня громкости для медиаплеера, которая лежит в диапазоне от 0 до 1, определяется так: uses Androidapi.JNI.JavaTypes, Androidapi.JNI.Media, Androidapi.Helpers, Androidapi.JNI.App, Androidapi.JNIBridge; Var MediaPlayer_Volume: single; procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); var AudioObj: JObject; Audio: JAudioManager; begin if (key = vkVolumeDown) or (key = vkVolumeUp) then begin AudioObj:= SharedActivity.getSystemService(TJActivity.JavaClass.AUDIO_SERVICE); Audio:= TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID); MediaPlayer_Volume:=Audio.getStreamVolume(TJAudioManager.JavaClass.STREAM_MUSIC)/Audio.getStreamMaxVolume(TJAudioManager.JavaClass.STREAM_MUSIC); end; end;
  11. Да, это я сегодня спрашивал. Не заметил, что Вы одно и то же лицо, как не заметил и приведенный Вами фрагмент в блоге. )) Спасибо! Буду изучать!
  12. Спасибо! Просто в плане работы с AndroidAPi в FMX у меня огромные пробелы. Насколько я понимаю, нужно добавить в uses модуль Androidapi.JNI.Media? Но как вызвать функцию - не знаю, не знаю, нужно ли использовать Intent или нет. Есть ли какой-нибудь FAQ-ликбез по тому, как вызывать функции из Android в FMX?
  13. Спасибо! А разве он подходит для Android?
  14. Всем здравствуйте. Интересует, есть ли в FMX аналог функции sound на старом Pascal, которая бы позволяла воспроизвдить звук заданной частоты и интервала времени. Подозреваю, что наверное нет. Но мне интересно, какие инструменты есть чтобы реализовать приложения для генрации мелодий - типа синтезатора?
  15. Не похоже. Меня интересует, есть ли в FMX функция, позволяющая определить текущий уровень громкости в приложении. Вопрос, как определить какая клавиша громкости нажата, не интересует.
  16. Всем здравствуйте. Интересует такой вопрос - можно ли средствами FMX определить текущее положение ползунка громкости (или уровень громкости)? Прежде всего интересует Android.
  17. Наверно не поможет, но все-таки: может попробовать сразу с потока грузить в TImage - TImage.Bitmap.LoadFromStream? А потом с него уже сохранять...
  18. Много раз вытаскивал Png из ресурсов, проблем не замечено. Например загрузка 40 изображений с именами "PngImage_1"..."Png_Image_40" в массив for n:=0 to 39 do begin rs:=TResourceStream.Create(0,'PngImage_'+inttostr(n+1),PChar(RT_RCDATA)); setlength(img,n+1); img[n]:=tbitmap.Create; img[n].LoadFromStream(rs); rs.Free; end;
  19. Один поток, один и тот же ресурс, и под Win32, и под Win64. И ещё раз уточню - это происходит не всегда, а достаточно редко. Причём проблема именно с заполнением битмапа из TStream'a (из любого), а не именно с TResourceStream. Может проблема не в заполнении битмапа из ресурса, а в сохранении битмапа в файл? Из первого Вашего сообщения вроде следует второй вариант. Может быть проблема в том, что Вы сохраняете битмап в png? Попробуйте подключить модуль FMX.Types, если еще не подключен. Там есть класс TBitmapCodecManager, предназначенный для конвертирования изображений в разные форматы. Подробнее в книге Осипова "Программирование для Windows, OS X, iOS и Android" на 236 стр.
  20. В редакторе кода показываются скобы, связывающие соответствующие begin и end. Интересует как их отключить? В настройках editor options много чего нажимал, но они так и остались. Может что пропустил?
  21. Все-таки решил переустановить студию. Помогло.
  22. Места предостаточно, более 12 ГБ. При этом приложение отказывается устанавливаться на 2 устройства. Некоторые решают проблему установкой параметра PrefereExternal, но у меня этот параметр выставлен.
  23. В последнее время при попытке запуска приложения на Android устройстве стала появляться ошибка INSTALL_FAILED_INSUFFICIENT_STORAGE. До этого никогда не было. В чем может быть проблема?
×
×
  • Создать...