#iphone #core-audio #volume #avaudiosession #headphones
#iPhone #ядро-аудио #громкость #avaudiosession #наушники
Вопрос:
Я получаю неожиданное поведение звука:
проблема — громкость устройства iPhone очень слабая, но если я подключу наушники, громкость будет идеальной
- во-первых, запустите приложение на iPhone, к которому ничего не подключено.
- Звук работает, но он настолько слабый, как будто на минимальной громкости. но он на максимальной громкости.
- теперь я подключаю наушники. полная громкость. отлично!
- отключите наушники. Перейдите к (2)
Не имеет значения, начинаю ли я с подключенными наушниками или нет. Кажется, это не связанная проблема
РЕДАКТИРОВАТЬ: такое поведение характерно для моего приложения. Я попробовал образец Apple AutoTouch, и он работает правильно как с наушниками, так и без них.
Комментарии:
1. Где вопрос, связанный с программированием?
2. Если вы даже задаете этот вопрос, это означает, что это полностью выходит за рамки вашей компетенции, и вам действительно не стоит вмешиваться. Это вы проголосовали за закрытие этого вопроса?
3. @Клаус, это вопрос программирования, смотрите Ответ Ohmu.
Ответ №1:
Вау!
// kAudioSessionOverrideAudioRoute_Speaker would only work once.
// kAudioSessionProperty_OverrideCategoryDefaultToSpeaker works
// until the session changes.
SET_PROPERTY( kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, UInt32, (UInt32) YES );
в принципе, в iPhone есть 2 внутренних динамика, «приемник», который прижимается к вашему уху, когда вы принимаете вызов, и внешний динамик гораздо большего размера (эти 2 решетки по обе стороны от разъема питания, левый — внешний динамик, правый — микрофон) — сбивает с толку: однажды я отнес свой iPhone в ремонтную мастерскую в Таиланде, потому что мой «правый динамик» не работал, и они даже предложили мне его починить ?! к счастью, мне не понравилась цена … )
в любом случае, по абсолютно никакой уважительной причине, которую я могу придумать,
SET_PROPERTY( kAudioSessionProperty_AudioCategory, UInt32,
kAudioSessionCategory_PlayAndRecord );
в сеансе по умолчанию используется приемник, поэтому ему просто нужно сказать, чтобы он использовал динамик вместо этого.
Комментарии:
1. «по абсолютно непонятной причине, которую я могу придумать» — Это потому, что если вы действительно воспроизводите и записываете звук одновременно, то микрофон в нижней части телефона будет улавливать гораздо больше нежелательного звука из динамика рядом с ним, чем из того, что находится у вашего уха.