Здравствуйте, я попробовал различные решения для подобных вопросов, но не смог заставить мой код работать. У меня есть следующие функции, которые я называю в моем приложении:AVAudioSession overrideOutputAudioPort & localNotifications in mute
func PlaySound (WhenToPlaySound:String) {
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
if WhenToPlaySound == "BeginningOfRound" {
if UIApplication.sharedApplication().applicationState == UIApplicationState.Background {
soundnotification.soundName = "BoxingBellStart.wav"
UIApplication.sharedApplication().scheduleLocalNotification(soundnotification)
println("timer is done in background mode")
} else {
// Load Sound
soundlocation = NSBundle.mainBundle().URLForResource("BoxingBellStart", withExtension: "wav")!
player = AVAudioPlayer(contentsOfURL: soundlocation, error: &Error)
player.volume = 1.0
// Play Sound
player.play()
println("timer is done in active mode")
}
} else {
if UIApplication.sharedApplication().applicationState == UIApplicationState.Background {
soundnotification.soundName = "Boxing.wav"
UIApplication.sharedApplication().scheduleLocalNotification(soundnotification)
println("timer is done in background mode")
} else {
// Load Sound
soundlocation = NSBundle.mainBundle().URLForResource("Boxing", withExtension: "wav")!
player = AVAudioPlayer(contentsOfURL: soundlocation, error: &Error)
player.volume = 1.0
// Play Sound
player.play()
println("timer is done in active mode")
}
}
}
В основном это работает, за исключением двух вещей:
1. Я не могу показаться, чтобы переопределить громкость динамика. Я хочу, чтобы громкость системы была полной, прежде чем я начну воспроизводить звук.
- LocalNotifications, которые активируются, когда приложение находится в фоновом режиме, платит только тогда, когда устройство не отключено.
Для решения первой проблемы я хотел следующее, но не знал, как использовать его:
AVAudioSession.sharedInstance().overrideOutputAudioPort(<#portOverride: AVAudioSessionPortOverride#>, error: <#NSErrorPointer#>)
Заранее спасибо, Ace
Я обновил пункт 1. –
относительно пункта 2. Я заметил, что еще одно приложение достигло локальных звуков уведомлений, даже если устройство в молчании. Если громкость отключена, то она не работает, но с громкостью и тишиной воспроизводится звук уведомления. –
@AceGreen - см. Мое обновление. Что касается точки 1, вы не можете изменить системный том без взаимодействия с пользователем (например, через MPVolumeView). – foundry