Kitty Опубликовано 5 октября, 2016 Поделиться Опубликовано 5 октября, 2016 Как в iOS при показе своего диалога-окна проиграть звук в момент появления этого окна? Можно ли вызвать стандартный звук уведомления? Спасибо. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 6 октября, 2016 Модераторы Поделиться Опубликовано 6 октября, 2016 На IOS есть баг один с воспроизведением звука... Первое воспроизведение звука происходит с треском (через TMediaPlayer) Самое простое найти аудио-файл и задеплоить его в проект, при инициализации формы, проиграть звук с 0 громкостью, после восстановить громкость на полную и тогда звук будет чистый Kitty 1 Цитата Ссылка на комментарий
0 Kitty Опубликовано 6 октября, 2016 Автор Поделиться Опубликовано 6 октября, 2016 После добавления TMediaPlayer приложение iOS iPhone 5 стало замирать при старте на заставке. Удалила TMediaPlayer проблема осталась... Может кто сталкивался? Цитата Ссылка на комментарий
0 Rusland Опубликовано 6 октября, 2016 Поделиться Опубликовано 6 октября, 2016 (изменено) 4 минуты назад, Kitty сказал: После добавления TMediaPlayer приложение iOS iPhone 5 стало замирать при старте на заставке. Удалила TMediaPlayer проблема осталась... Может кто сталкивался? Должно быть нужно удалить модули, которые добавились после добавления TMediaPlayer Попробуй удалить FMX.Media Изменено 6 октября, 2016 пользователем Rusland Kitty 1 Цитата Ссылка на комментарий
0 Kitty Опубликовано 6 октября, 2016 Автор Поделиться Опубликовано 6 октября, 2016 (изменено) Вроде бы нашлась проблема и TMediaPlayer вроде не причем.. Мне надо при старте приложения сразу показать диалоговое окно и поэтому код выглядит так: void CreateMyDialog(String MES) { if(FormDialog == NULL) { FormDialog = new TFormDialog(0); FormDialog->Text1->Text = MES; FormDialog->ShowModal(); if(FormDialog != NULL) { delete FormDialog; FormDialog = NULL; } } } void __fastcall TForm1::FormShow(TObject *Sender) { //показать другую форму-диалог которая имитирует уведомление //если закомментировать этот код, то приложение стартует нормально TDateTime DataInLogTable = Now(); String FormatDATA = FormatDateTime("dd-mm-yyyy", DataInLogTable); String MES = L"Для Вас " + FormatDATA + L" діє АКЦІЯ! Жми :)"; CreateMyDialog(MES); } Т.е. из FormShow основного окна я пытаюсь показать окно-диалог и все умирает. Таким образом мне при старте программы нужно сразу показать окно-диалог. Как правильно? Получается мой вопрос трансформируется в следующее: Как при старте программы iOS показать окно-диалог и с проигрыванием звука? Изменено 6 октября, 2016 пользователем Kitty Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 6 октября, 2016 Модераторы Поделиться Опубликовано 6 октября, 2016 попробуй использовать OnActivate, это последнее событие которое вызывается после инициализации, показа формы. Только через флаг какой нить, типа Tag'a иначе постоянно будет выпрыгивать Цитата Ссылка на комментарий
0 Kitty Опубликовано 6 октября, 2016 Автор Поделиться Опубликовано 6 октября, 2016 ZuBy, у меня нашлось такое решение, прошу подтвердить или оно правильное или делать как Вы рекомендовали: void __fastcall TForm1::FormShow(TObject *Sender) { TimerStart->Enabled = true; } //таймер 1 секунда void __fastcall TForm1::TimerStartTimer(TObject *Sender) { TimerStart->Enabled = false; TDateTime DataInLogTable = Now(); String FormatDATA = FormatDateTime("dd-mm-yyyy", DataInLogTable); String MES = L"Для Вас " + FormatDATA + L" АКЦИЯ! Жми :)"; CreateMyDialog(MES); } Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 6 октября, 2016 Модераторы Поделиться Опубликовано 6 октября, 2016 (изменено) 4 минуты назад, Kitty сказал: ZuBy, у меня нашлось такое решение, прошу подтвердить или оно правильное или делать как Вы рекомендовали: void __fastcall TForm1::FormShow(TObject *Sender) { TimerStart->Enabled = true; } //таймер 1 секунда void __fastcall TForm1::TimerStartTimer(TObject *Sender) { TimerStart->Enabled = false; TDateTime DataInLogTable = Now(); String FormatDATA = FormatDateTime("dd-mm-yyyy", DataInLogTable); String MES = L"Для Вас " + FormatDATA + L" АКЦИЯ! Жми :)"; CreateMyDialog(MES); } ну если вас такое устраивает, тоже имеет место быть Изменено 6 октября, 2016 пользователем ZuBy Цитата Ссылка на комментарий
0 Kitty Опубликовано 6 октября, 2016 Автор Поделиться Опубликовано 6 октября, 2016 Интервал таймера по дефолту 1 секунда. Вроде все работает. Вижу диалоговое окно. Слышу аудио файл без искажений... Но если честно, все это похоже, как пишут на форумах, на костыль... Равиль Зарипов (ZuBy) 1 Цитата Ссылка на комментарий
0 Kitty Опубликовано 8 октября, 2016 Автор Поделиться Опубликовано 8 октября, 2016 А как в момент показа формы и проигрывания звука, включить вибрацию? Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 8 октября, 2016 Модераторы Поделиться Опубликовано 8 октября, 2016 37 минут назад, Kitty сказал: А как в момент показа формы и проигрывания звука, включить вибрацию? на айос? тут лежат полные хидеры для Delphi (на счёт C++ незнаю где найти) https://github.com/FMXExpress/ios-object-pascal-wrapper AudioServicesPlayAlertSound( kSystemSoundID_Vibrate) P.S. мы это обсуждали уже на канале в телеграмме Kitty 1 Цитата Ссылка на комментарий
Вопрос
Kitty
Как в iOS при показе своего диалога-окна проиграть звук в момент появления этого окна?
Можно ли вызвать стандартный звук уведомления?
Спасибо.
Ссылка на комментарий
10 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.