2010-02-03 5 views
2

Как мы можем воспроизводить звук с помощью динамика уха из приложения. Звук играет, как будто кто-то разговаривает на другом конце телефона.Воспроизведение iPhone аудио в ухе speker

Благодаря

+0

как долго ваш звуковой файл? – choise

+0

От 30 до 40 секунд – user265201

+0

Шесть вопросов, которые вы задали, и не получили ответа ни на один из них? Позор. – buildsucceeded

ответ

5

Это похоже на то, что вы ищете это: (от Apple's documentation)

Audio Session Категория Route Overrides

Определяет ли аудио маршрут по умолчанию для PlayAndRecord категория должна быть переопределена.

enum { 
    kAudioSessionOverrideAudioRoute_None = 0, 
    kAudioSessionOverrideAudioRoute_Speaker = 'spkr' 
}; 

Константы

kAudioSessionOverrideAudioRoute_None 

Задает для kAudioSessionCategory_PlayAndRecord категории, что выход аудио должен идти к приемнику. Это выходной аудиовыход по умолчанию для этой категории.

kAudioSessionOverrideAudioRoute_Speaker 

Задает для kAudioSessionCategory_PlayAndRecord категории, что аудио выход должен идти на динамик, а не приемник.

Обсуждение Категория kAudioSessionCategory_PlayAndRecord поддерживает одновременный ввод и вывод. Вы можете использовать эту категорию, например, чтобы добавить эффект для звука, входящего в микрофон iPhone. По умолчанию выходной звук для этой категории поступает на приемник - громкоговоритель, который вы держите на ухо при телефонном звонке. Константа kAudioSessionOverrideAudioRoute_Speaker позволяет вам направлять выходной звук в динамик, расположенный в нижней части телефона.

0

Чтобы добавить к вышесказанному, существует также более постоянное решение kAudioSessionProperty_OverrideCategoryDefaultToSpeaker в соответствии с этим Apple Doc.

Quoth они:

В отличие от этого, kAudioSessionProperty_OverrideCategoryDefaultToSpeaker изменяет поведение маршрутизации категории kAudioSessionCategory_PlayAndRecord так, что звук будет всегда маршрут к громкоговорителю, а не приемник, если никакой другой аксессуар, например, наушники используются.

для справки, Вот реальный код

UInt32 doChangeDefaultRoute = 1;   
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);