ios - Audio playback not returning to original volume in Swift -


i trying play "ding" noise alert user of event. "ding" plays background audio (in case, default music.app) not return original volume after playing ding. return normal volume after closing app however. have:

this set audio session category:

     public override func viewdidload() {             super.viewdidload()             {                 try avaudiosession.sharedinstance().setcategory(avaudiosessioncategoryplayback, withoptions: avaudiosessioncategoryoptions.duckothers)                 //refer link swift's sound reference: https://developer.apple.com/ios/human-interface-guidelines/interaction/audio/             } catch {                 print("unable load audio session")             }             ....      } 

this call functions:

if(!currenttimer.launchednotification){             playfinishedsound()             audioservicesplayalertsound(systemsoundid(ksystemsoundid_vibrate)) //handles phone vibration             audioplayerdidfinishplaying(audioplayer!, successfully: true)          } 

and here private function:

private func playfinishedsound(){         if let pathresource = nsbundle.mainbundle().pathforresource("ding", oftype: "wav"){             let soundtoplay = nsurl(fileurlwithpath: pathresource)             {                 audioplayer = try avaudioplayer(contentsofurl: soundtoplay)                 if(audioplayer!.preparetoplay()){                     print("preparation success")                     audioplayer!.delegate = self                     setavaudiosession()                     if(audioplayer!.play()){                         print("sound play success")                     }else{                         print("sound file not played")                     }                 }else{                     print("preparation failure")                 }              }catch{                 print("sound file not found")             }         }else{             print("path not found")         }     } 

here set audio session:

private func setavaudiosession() {         let session:avaudiosession = avaudiosession.sharedinstance()         do{             try session.setactive(true)             print("session active")         }catch{             print("could not make session active")         }     } 

this delegate method avaudioplayerdelegate protocol:

public func audioplayerdidfinishplaying(player: avaudioplayer, flag: bool) {         {             player.stop()             try avaudiosession.sharedinstance().setactive(false, withoptions: avaudiosessionsetactiveoptions.notifyothersondeactivation)             player.preparetoplay()             print("session stopped successfully")         }catch{             print("could not end audio session")         }     } 

again, problem if there music playing in background, music volume soften, when audio session inactive, music volume not return normal.


Comments