Search code examples
iosiphonexamarin.iosavaudioplayeravaudiosession

how to play sound if app is in background mode


I have the iOS application developed in the Xamarin.Forms. How can I play the sound when app is in minimized mode?

Could someone please give any hint or example of how to do it?

Thanks in advance.

Vivek


Solution

  • class musicPlayer {
        public static var instance = musicPlayer()
        var player = AVPlayer()
    
        func initPlayer(url : String) {
            guard let url = URL.init(string: url) else { return }
            let playerItem = AVPlayerItem.init(url: url)
            player = AVPlayer.init(playerItem: playerItem)
            playAudioBackground()
        }
    
        func playAudioBackground() {
            do {
                try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, mode: AVAudioSessionModeDefault, options: [.mixWithOthers, .allowAirPlay])
                print("Playback OK")
                try AVAudioSession.sharedInstance().setActive(true)
                print("Session is Active")
            } catch {
                print(error)
            }
        }
    
        func pause(){
            player.pause()
        }
    
        func play() {
            player.play()
        }
    }