Воспроизводить звук только при включенном переключателе «Звонок/Без звука»IOS

Программируем под IOS
Ответить
Anonymous
 Воспроизводить звук только при включенном переключателе «Звонок/Без звука»

Сообщение Anonymous »

Я работаю над приложением с фортепианной клавиатурой. Я хочу, чтобы звук после нажатия клавиши воспроизводился только тогда, когда переключатель «Звонок/Без звука» включен. Затем он должен остановить фоновую музыку из других приложений. Если переключатель «Звонок/Без звука» находится в беззвучном положении, он ничего не должен делать и позволяет воспроизводить фоновую музыку из других приложений (например, Spotify).

Что я пробовал (со Spotify в качестве фоновой музыки):

Вариант 1 [AVAudioSessionCategoryAmbient]:
  • Переключатель «Звонок/Без звука» включен: фоновая музыка не останавливается и вместе с фоновой музыкой воспроизводится звук из приложения (-> Чего я не хочу)< /li>
    Переключатель «Звонок/Без звука» находится в беззвучном положении: фоновая музыка не останавливается и звуки в приложении не воспроизводятся (-> То, что я хочу)
Вариант 2 [AVAudioSessionCategorySoloAmbient]:
  • Переключатель «Звонок/Без звука» включен: фоновая музыка останавливается и начинает воспроизводиться -звук приложения (-> Что я хочу)
  • Переключатель «Звонок/Без звука» находится в беззвучном положении: фоновая музыка останавливается, но звуки в приложении не воспроизводятся (-> Чего я хочу, это не должно прекращаться фоновая музыка)
Я думаю, что вариант 2 — самый близкий вариант, который я могу получить. iPhone не должен отключать фоновую музыку, когда переключатель «Звонок/Без звука» находится в беззвучном положении, и я был бы рад.

Вариант 3 [AVAudioSessionCategoryPlayback]:< /strong>
  • Переключатель «Звонок/Без звука» включен: фоновая музыка останавливается и воспроизводится звук из приложения (- > Чего я хочу)
  • Переключатель «Звонок/Без звука» находится в беззвучном положении: фоновая музыка останавливается и воспроизводится звук из приложения (-> Чего я не хочу)


Мой код:

Код: Выделить всё

let NoteSound = NSURL(fileURLWithPath: Bundle.main.path(forResource: currentNote.sound, ofType: "m4a")!)
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
try AVAudioSession.sharedInstance().setActive(true)
audioPlayer = try AVAudioPlayer(contentsOf: NoteSound as URL)
audioPlayer.prepareToPlay()
audioPlayer.play()
} catch {
print("Problem in getting File")
}
В примере кода я изменил только .setCategory() .

Подробнее здесь: https://stackoverflow.com/questions/522 ... is-on-ring
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»