Есть ли какие-либо другие звуковые системы iOS, кроме "tock"?

Я применил альтернативную клавиатуру в своем первом приложении для iPhone. Я бы хотел сыграть звук при нажатии кнопки. Звук щелчка по умолчанию при нажатии стандартной клавиатуры будет прекрасным, но я не знаю, как получить этот звук.

В этом ответе я нашел, как играть звук "tock":

Воспроизведение звука системы без импорта собственных

Я получил это, чтобы работать достаточно легко, но это очень громкий звук. Я искал Qaru и помощь Xcode для доступных звуков системы iOS, кроме "tock", и я не могу их найти.

Существуют ли другие встроенные звуки, возможно, даже звук клавиатуры по умолчанию, который я могу использовать?

Ответ 1

До и после публикации этого вопроса почти 2 недели назад я искал высокий и низкий метод, чтобы заставить звук нажатия клавиш работать в моем приложении. Я попытался реализовать и понять документацию Apple по пользовательским представлениям ввода. Я вовсю удалил мое приложение, пытаясь заставить его работать и создал несколько тестовых проектов. Я попытался объяснить, как это сделать из разных источников в Интернете. Все безрезультатно. Я закончил свое приложение, но только для этой последней функции.

Я, наконец, нажал на простой ответ в конце на этот вопрос/сообщение в форме IPhone Dev SDK. Окончательный ответ прост и может быть сделан за несколько секунд с помощью этих простых шагов.

  • Свяжите "AudioToolbox.framework" с вашим проектом. Нажмите на свой проект "Цель", выберите "Сформировать фазы" и в разделе "Связывание двоичных файлов с библиотеками" нажмите кнопку + добавьте фреймворк.

  • Добавьте в заголовочный файл класса, в который вы хотите реализовать клик, следующее:

    #import <AudioToolbox/AudioToolbox.h>
    
  • Добавьте следующую строку кода в файл реализации вашего класса, где бы вы не захотели, чтобы звук нажатия клавиш отображался:

    AudioServicesPlaySystemSound(0x450);
    

ЭТО! И ЭТО РАБОТАЕТ!!! АЛЛИЛУЙЯ!

По словам Павла на другом форуме, это имеет следующий недостаток:

"не будут влиять предпочтения пользователя iOS для включения/выключения звука клавиатуры."

Но когда я поворачиваю громкость вверх или вниз на своем iPhone, или если я отключу iPhone, звуки нажатия клавиш идут вверх и вниз или приглушаются, как и следовало ожидать. Учитывая, что я обнаружил невозможным внедрение клавиатурных кликов "UIInputViewAudioFeedback", как задокументировано, я рад, что что-то работает.

P.S. Если у кого-то есть ссылка на фактический проект, который я могу загрузить, построить и запустить на своем iPhone, чтобы увидеть ТОЧНО, как правильно реализовать: "UIInputViewAudioFeedback", я был бы рад дать ему взглянуть. Но пока я не нашел ни одного, ни пошагового инструктажа стиля новичка о том, как заставить его работать.

[30 сентября 2012 г. ОБНОВЛЕНИЕ:] Я с удовольствием скажу, что мое приложение было принято в хранилище приложений с помощью этого метода. Вот он: https://itunes.apple.com/app/fine-tip-tip-calculator/id563429225

... Dale

Ответ 2

Попробуйте UIDevice playInputClick:

[[UIDevice currentDevice] playInputClick];

Из документации:

Используйте этот метод для воспроизведения стандартного щелчка клавиатуры системы в ответ на нажатие пользователем в пользовательском представлении ввода или клавиатуры. Щелчок воспроизводится только в том случае, если пользователь активировал нажатия клавиш в "Настройках" > "Звуки", и только если вид ввода сам включен и виден.

Убедитесь, что вы используете протокол UIInputViewAudioFeedback в классе входных представлений и внедряете метод делегата enableInputClicksWhenVisible для возврата YES в соответствии с документацией.

EDIT. Для реализации методов делегатов ознакомьтесь с документацией Apple по пользовательским представлениям ввода.