Перейти к содержанию
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. Аналогично. Просто проверять состояние TShiftState. Только клавиши Win там нет
  6. Спасибо за ответ. Действительно, часто не переводится в Stopped. Как это исправить меня также интересует. Сравнением Duration с CurrentTime у меня сейчас и реализовано, но думал, что можно сделать лучше...
  7. Добрый день. Здесь все написано http://delphifmandroid.blogspot.com/2013/10/android.html
  8. Всем здравствуйте! Необходимо отлавливать событие, когда музыкальный трек заканивает воспроизведение (причем, определять нужно точно). В медиаплеере такого события не нашел. Все, что придумал - это в таймере с маленьким интервалом (10-50 мс) выполнять проверку TMediaplayer.State = TMediaState.Stopped, но это довольно ресурсоемко, и все равно интервал великоват. Есть ли способ сделать так, чтобы по окончанию воспроизведения трека генерировалось это событие? Или есть ли нересурсоемкий способ зациклить воспроизведение трека с минимальной задержкой между циклами?
  9. Отличный код! Большое спасибо. Добавил еще определение максимального уровня громкости 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;
  10. Да, это я сегодня спрашивал. Не заметил, что Вы одно и то же лицо, как не заметил и приведенный Вами фрагмент в блоге. )) Спасибо! Буду изучать!
  11. Спасибо! Просто в плане работы с AndroidAPi в FMX у меня огромные пробелы. Насколько я понимаю, нужно добавить в uses модуль Androidapi.JNI.Media? Но как вызвать функцию - не знаю, не знаю, нужно ли использовать Intent или нет. Есть ли какой-нибудь FAQ-ликбез по тому, как вызывать функции из Android в FMX?
  12. Спасибо! А разве он подходит для Android?
  13. Всем здравствуйте. Интересует, есть ли в FMX аналог функции sound на старом Pascal, которая бы позволяла воспроизвдить звук заданной частоты и интервала времени. Подозреваю, что наверное нет. Но мне интересно, какие инструменты есть чтобы реализовать приложения для генрации мелодий - типа синтезатора?
  14. Не похоже. Меня интересует, есть ли в FMX функция, позволяющая определить текущий уровень громкости в приложении. Вопрос, как определить какая клавиша громкости нажата, не интересует.
  15. Всем здравствуйте. Интересует такой вопрос - можно ли средствами FMX определить текущее положение ползунка громкости (или уровень громкости)? Прежде всего интересует Android.
  16. Наверно не поможет, но все-таки: может попробовать сразу с потока грузить в TImage - TImage.Bitmap.LoadFromStream? А потом с него уже сохранять...
  17. Много раз вытаскивал 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;
  18. Один поток, один и тот же ресурс, и под Win32, и под Win64. И ещё раз уточню - это происходит не всегда, а достаточно редко. Причём проблема именно с заполнением битмапа из TStream'a (из любого), а не именно с TResourceStream. Может проблема не в заполнении битмапа из ресурса, а в сохранении битмапа в файл? Из первого Вашего сообщения вроде следует второй вариант. Может быть проблема в том, что Вы сохраняете битмап в png? Попробуйте подключить модуль FMX.Types, если еще не подключен. Там есть класс TBitmapCodecManager, предназначенный для конвертирования изображений в разные форматы. Подробнее в книге Осипова "Программирование для Windows, OS X, iOS и Android" на 236 стр.
  19. В редакторе кода показываются скобы, связывающие соответствующие begin и end. Интересует как их отключить? В настройках editor options много чего нажимал, но они так и остались. Может что пропустил?
  20. Все-таки решил переустановить студию. Помогло.
  21. Места предостаточно, более 12 ГБ. При этом приложение отказывается устанавливаться на 2 устройства. Некоторые решают проблему установкой параметра PrefereExternal, но у меня этот параметр выставлен.
  22. В последнее время при попытке запуска приложения на Android устройстве стала появляться ошибка INSTALL_FAILED_INSUFFICIENT_STORAGE. До этого никогда не было. В чем может быть проблема?
×
×
  • Создать...