Таблица лидеров


Популярный контент

Показан контент с высокой репутацией 08.06.2018 во всех областях

  1. 4 балла
    Alex7wrt

    Audio Streaming

    Под Android я тоже делал аудио чат родными средствами, но через Bass получилось лучше и проще. В частности, там буферизация из коробки, можно эффекты накладывать, например усиление голоса при записи через микрофон. Поэтому и предложил, ведь под Bass код, что под Android, что под iOS, один и тот же. Поделиться не сложно. Ниже надергал основную схему из того приложения, о котором говорил выше. uses FMX.Radio.Bass; var BLoaded: boolean; chanPlay, ChanMic: Dword; avail, freq: word; buffer: TIDBytes; procedure TForm1.OnCreate(Sender: TObject); begin //Создаем UDP сервер UDP_Rec:=TIDUDPServer.Create; with UDP_Rec do begin DefaultPort:=UDP_RecPort; BufferSize:=1600; BroadcastEnabled:=true; Active:=true; end; freq:=16000; //Частота дискретизации setlength(buffer,UDP_Rec.BufferSize); BLoaded:=BASS_Init(-1, 44100, 0, nil, nil); //Подключаем библиотеку BASS_RecordInit(-1); //Инициализируем запись end; //Захват звука с микрофона procedure TForm1.Recording(Sender: TObject; const Point: TPointF); begin isrecording:=not isrecording; if isrecording then begin UDP_Rec.OnUDPRead:=nil; chanMic:=BASS_RecordStart(freq, 1, 0, nil, nil); VoiceThread:=TVoiceThread.Create; //Создание потока для отправки по UDP end end; //Передача буффера в потоке procedure TVoiceThread.Execute; begin while isrecording do begin try avail:=BASS_ChannelGetData(chanMic, nil, BASS_DATA_AVAILABLE); if avail>=UDP_Rec.BufferSize then begin //Если в буффере собралось не меньше 1600 байт, отправляем try BASS_ChannelGetData(chanMic, buffer, UDP_Rec.BufferSize); UDP_Rec.Broadcast(Buffer,UDP_RecPort); except end; end; finally sleep(20); end; end; BASS_ChannelStop(chanmic); BASS_StreamFree(chanmic); end; //Создание канала для воспроизведения звука из буффера: procedure TForm1.receiving(Sender: TObject); begin chanPlay:= BASS_StreamCreate(freq, 1, 0, STREAMPROC_PUSH, nil); UDP_Rec.OnUDPRead:=UDP_RecRead; BASS_ChannelPlay(chanPlay, false); end; //Получаем буффер из UDP procedure TForm1.UDP_RecRead(AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle); begin try BASS_StreamPutData(chanPlay, AData,length(AData)) except end; end; Bass.zip
  2. 2 балла
    {$ZEROBASEDSTRING ON} и работай с учётом что строка с 0 начинается. Либо юзай хелперы
  3. 2 балла
    gonzales

    Пуши в IOS

    Все правильно, так и работает. При публикации в аппсторе sandbox (песочница) надо снять
  4. 1 балл
    krapotkin

    Пуши в IOS

    конечно. мы же читаем json пуша в программе самостоятельно соответственно, можем разобрать и делать что-нибудь свое
  5. 1 балл
    Alex7wrt

    Audio Streaming

    Методом проб и ошибок обнаружил, что для речи запись с частотой дискретизации 16000 выдает практически такое же качество, как и 44100, но ощутимо лучше, чем 8000. При этом используется одноканальная запись (моно), что с учетом 16 бит на семпл дает 32 кБ/с (256 кбит/с), что не сильно нагружает WiFi сеть. Потерь нет (и это в UDP протоколе). Также, одна из причин, почему я не использую сжатие в данном приложении, это телефоны-приемники, которые у нас по большей части старые смартфоны с одноядерным процессорм. А в приложении кроме аудиочата есть и другие нагружающие фичи. Не хочется лишний раз нагружать проц и садить батарею, если и так все норм.
  6. 1 балл
    Способ решить эту проблему я ищу почти год, и хоть на форуме несколько раз упоминались похожие темы, решил создать еще одну, т.к. нет никакого решения (все просмотрел). На форме 2 или больше TEdit, переход с первого на второй по Enter (Next). Все что набрано в первом TEdit, при нажатии любой буквы второго TEdit переносится во второй плюс эта буква (см. скриншот) Все это происходит при включенном на телефоне "подсказчике" слов, но он удобен и огромное количество людей им пользуются. Приложений у меня было несколько. И на C++ и на Delphi. Использовал RAD XE 10 Четыре планшета и три смартфона с Андроидами 4, 5, 6 для тестов. Клавиатуры и родные и Гугл. Все они как близнецы повторяют этот трюк и как избавится от него, никак не могу найти решение. Единственное, что помогает - отключить подсказки в самом телефоне, но это на своем. А те кто скачивают программу из интернета, им как быть? Благодарен за любые советы (подсказки). Сам я ищу возможность обнулить буфер клавиатуры при выходе с одного Эдита и входе в следующий.
  7. 1 балл
    Martifan

    Audio Streaming

    сам у Bass есть этот модуль разберусь и результат вылажу
  8. 1 балл
    Barbanel

    Иконки для приложение в App Store

    Я олень) Оказывается в студии в свойствах проекта есть две вкладки: iPhone и iPad. Проблема решена.
  9. 1 балл
    Первые пробы портирования существующего приложения с FMX на FGX. За основу был выбран классный проект Станислава Ихнатовича из Беларуссии с мобильным расписанием, отличающийся от других продуманным интерфейсом и детальной шлифовкой UI. Станислав любезно предоставил исходные коды своего проекта. Предлагаю вам ознакомиться с первым наброском его приложения на базе FGX. Обратите внимание, на сколько удобно идет создание стиля расписания пары, сделанного на базе компонента TfgCollectionView. В дизайн тайме созданы три варианта стилей без единой строчки кода для отображения расписания одной пары в разных исполнениях. Используя всю мощь FlexBox, удается достигнуть разнообразных вариантов "резинового" выравнивания контролов. А связь с данными не размазывается по коду, а сосредоточена вся в одном месте. Меню навигации сделано на базе нового компонента TfgListMenu без единой строчки кода, за исключением обработчиков нажатия на пункты меню и открытия отдельных форм, которым отведена роль отображения экранных страниц. Отдельно стоит указать, что специально для данного мобильного приложения была расширена возможность задавать задний фон контролов на базе картинки. А также были расширены возможности отображения и выравнивания форм относительно других. Так например форму можно встроить в любой контрол контейнерного типа, как фрейм. Или же просто отобразить форму, как всплывающее окно. P.S. Портирование приложения на FGX Native находится на стадии разработки. Screenrecorder-2018-05-28-00-54-39-998.mp4
  10. 1 балл
    не совсем понятно чем обычный THTTPClient не угодил?
  11. 1 балл
    Alex7wrt

    Audio Streaming

    Советую обратить внимание на библиотеку Bass. Буквально на днях решал похожую задачу под Android (аудио чат в пределах локальной сети) с использованием данной библиотеки. Она же доступна и под iOS.
  12. 1 балл
    Anatoliy

    Пуши в IOS

    После публикации в app store пуши перестали приходить. Помогло обратно вернуть в false 'sandbox' => false, и пуши пошли. Таким образом, не знаю как у других, но у меня во время разработки пуши работают если 'sandbox' => true, а после публикации в app store вернуть обратно 'sandbox' => false Может кому пригодиться эта информация. Почему так не знаю.
  13. 1 балл
    На сенсорном экране нужно обрабатывать тап, в Делфи есть компонент для жестов. Копай в эту сторону
  14. 1 балл
    При открытии/ворачивании в приложение очисти буфер
Эта таблица лидеров рассчитана в Москва/GMT+03:00