Ben SOF üzerinde birçok soru var biliyorum, ama bu "yeni" bir olduğunda sesi çalmaya başlar. Sorun şu ki, uygulama yaratmaya çalışıyorum ve alarm uygulaması var. Bildiğim kadarıyla, uygulama çalışmıyor olsa ve arka planda olsa bile, mükemmel bir şekilde çalışan alarm uygulamaları var.iOS 8, arka planda çalar saat uygulaması
Soruma sorum: uygulamanızın arka planda zaten çaldıktan sonra sesini çalmaya nasıl başladınız?
UILocalNotification harika, ancak kullanıcı zaten bildiriminizi tıkladıktan sonra yalnızca application:(_:didReceiveLocalNotification:)
alırsınız, bu nedenle AVAudioPlayer kullanarak ses çalmadı, kullanıcının onu tıklattığına bakılmaksızın ses çalmak isterim veya çalışmıyor ' t. Elbette info.plist
'da Required background modes: App plays audio or streams audio/video using AirPlay
ile ayarlanmış. Müzik çalmaya başladığında, arka plana gidersem bile oynamaya devam eder.
Ben 30 saniye ve uygulama ile birlikte gelen sesleri çalmak için sadece edebilmek için sınırlı coz UILocalNotificaation sesi kullanmak istemiyoruz.
Herhangi bir yorumlara? düşünceler
örnek kod:
var notif = UILocalNotification()
notif.fireDate = self.datePicker.date
notif.alertBody = "test"
UIApplication.sharedApplication().scheduleLocalNotification(notif)
kullanıcı seçer ve alarm ve tıklama kaydederken Yukarıdaki kod çağrılır. ...
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
NSLog("launched")
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound | UIUserNotificationType.Alert |
UIUserNotificationType.Badge, categories: nil
))
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
self.sound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sound", ofType: "caf"))
self.audioPlayer = AVAudioPlayer(contentsOfURL: sound, error: nil)
return true
}
func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!){
audioPlayer.play()
NSLog("received local notif")
}
Sen btw AVAudioPlayer
için güçlü bir referans tutmak gerekir, bu yüzden serbest olsun olmayacak ve audioplayer.play()
şey yapmaz:
ve burada AppDelegate içinde olup bitenler
\ uygulama didreceivelocalnotification' sonra çağrılmalıdır 'arka planda ise: Bu elma üzerinden gideceğini, ama neden değil mi herhangi bir neden görmüyorum eğer emin değilim rağmen
bildirim atıldı. Belki sesi çalmak için kodunuzu buraya koyabilirsiniz. – Chris
Birçok kez denedim, öyle değil, sadece kullanıcı bildirimi tıkladıktan sonra kovulur. Yine de sorumu düzenleyeceğim. – Nour1991