'Swift problem with AVAudioPlayer (AddInstanceForFactory: No factory registered for id <CFUUID)

Im working in swift for like 1 month. Started to make some apps watching some yt tutorials(Ios Academy). I got problem making music player , when i try to play song which i added to app , i get this message: AddInstanceForFactory: No factory registered for id <CFUUID

here is the code: import AVFoundation import UIKit var player: AVAudioPlayer!

class PlayerViewController: UIViewController, UITableViewDelegate {

public var position: Int = 0
public var songs: [Song] = []

@IBOutlet var holder: UIView!


// user interface element

private let albumImageView: UIImageView = {
    let imageView = UIImageView()
    imageView.contentMode = .scaleAspectFill
    return imageView
}()


private let songNameLabel: UILabel = {
    let label = UILabel()
    label.numberOfLines = 0 // line wrap
    label.textAlignment = .center
    return label
}()

private let artistNameLabel: UILabel = {
    let label = UILabel()
    label.numberOfLines = 0 // line wrap
    label.textAlignment = .center
    return label
}()

private let albumNameLabel: UILabel = {
    let label = UILabel()
    label.numberOfLines = 0 // line wrap
    label.textAlignment = .center
    return label
}()


override func viewDidLoad() {
    super.viewDidLoad()
   
}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    if holder.subviews.count == 0 {
        configure()
        
    }
}
func configure() {
    // setup player
    let song = songs[position]
    let urlString = Bundle.main.path(forResource: song.trackName, ofType: "mp3")
   
    
    do {
        try   AVAudioSession.sharedInstance().setMode(.default)
        try   AVAudioSession.sharedInstance().setActive(true, options: .notifyOthersOnDeactivation)
        
        guard let urlString = urlString else {
           
            return
                
        }
        
    
        player = try AVAudioPlayer(contentsOf: URL(string: urlString)!)
      
    
        guard let player = player else {
          print("player is nil")
            return
        }
        
        player.play()
    }
    
    catch {
        print("error occurred")
    }
    // setup user interface elements
    
    // album cover
    albumImageView.frame = CGRect (x: 10,
                                   y: 10,
                                   width: holder.frame.size.width-20,
                                   height: holder.frame.size.width-20)
    albumImageView.image = UIImage(named: song.imageName)
    holder.addSubview(albumImageView)
    
    // labels Song name , album , artist
    songNameLabel.frame = CGRect (x: 10,
                                  y: albumImageView.frame.size.height + 10,
                                   width: holder.frame.size.width-20,
                                 height: 70)
    
    albumNameLabel.frame = CGRect (x: 10,
                                   y: albumImageView.frame.size.height + 10 + 70,
                                   width: holder.frame.size.width-20,
                                 height: 70)
    
    artistNameLabel.frame = CGRect (x: 10,
                                   y: albumImageView.frame.size.height + 10 + 140,
                                   width: holder.frame.size.width-20,
                                 height: 70)
    
    
    songNameLabel.text = song.name
    albumNameLabel.text = song.albumName
    artistNameLabel.text = song.artistName
    
    holder.addSubview(songNameLabel)
    holder.addSubview(albumNameLabel)
    holder.addSubview(artistNameLabel)
    
    
    // Player controls
    
    
}
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    if let player = player {
        player.stop()
    }
}

}

i tried to fix watching some other answers about this problem , but i actually got no idea what else to do , but cant give up till i fix this..



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source