play next song when music when music is finished in iOS swift -


i trying build music app. music playing when music finished not playing next song. searching solution. when try whit solution is's give me error.

erminating app due uncaught exception 'nsinvalidargumentexception', reason: '-[shironamhin.musicplayer playerdidfinishplaying:]: unrecognized selector sent instance 0x17003d960

i trying way

class musicplayer: nsobject {      static let player = musicplayer()      //this global variable     var player : avplayer?     var playeritem:avplayeritem?      func initplayer(){         {             try avaudiosession.sharedinstance().setcategory(avaudiosessioncategoryplayback)             try avaudiosession.sharedinstance().overrideoutputaudioport(avaudiosessionportoverride.speaker)             print("avaudiosession category playback ok")             {                 try avaudiosession.sharedinstance().setactive(true)                  print("avaudiosession active")              } catch let error nserror {                 print(error.localizeddescription)             }         } catch let error nserror {             print(error.localizeddescription)         } }     func playmusic(_ musicurl: string?) {         if let mm = musicurl {             var url: url!             url = url(string: mm)             playeritem = avplayeritem(url: url)             player = avplayer(playeritem: playeritem)             player?.volume = 1.0             player?.rate = 1.0             player?.play()             notificationcenter.default.addobserver(self, selector: selector(("playerdidfinishplaying:")), name: nsnotification.name.avplayeritemdidplaytoendtime, object: playeritem)           }          func playerdidfinishplaying(note: nsnotification) {              print("call")          }     }     } 

also how can implement playerdidfinishplaying??

since swift 3, must declare selectors this: #selector(playerdidfinishplaying(email:)) , since swift 4 must add @objc attribute function:

@objc func audiodidfinishplaying(note: nsnotification) {     print("call") } 

by way, avaudioplayerdelegate has nice function: optional func audioplayerdidfinishplaying(_ player: avaudioplayer, flag: bool), may easier use it. :)


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -