глупое предупреждающее сообщение в консоли: завод не зарегистрирован для id! с использованием AVAudioPlayer - PullRequest
0 голосов
/ 09 июля 2020

Как мы можем избавиться от фабрики, не зарегистрированной для идентификатора?

Это сообщение с консоли:

2020-07-09 21: 26: 35.353266 + 0200 simpleAudioPlayer [4117: 291876] [плагин] AddInstanceForFactory: для идентификатора фабрика не зарегистрирована F8BB1C28-BCE8-11D6-9C31-00039815CD46

Это мой код, он работает нормально, но я получаю этот массаж каждый раз:

import UIKit

import AVFoundation

var player = AVAudioPlayer ()

класс ViewController: UIViewController {

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


@IBAction func playButton_Action(_ sender: UIButton)
{
    //▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
    do{
        
        if let audioPath = Bundle.main.path(forResource: "music", ofType: "mp3")
        {
            let audioURL = URL(fileURLWithPath: audioPath)
            player = try AVAudioPlayer(contentsOf: audioURL)
            player.prepareToPlay()
            player.play()
        }
        
    }
    catch
    {
    }
    //▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
}

}

1 Ответ

0 голосов
/ 09 июля 2020

Если вы объявляете AVAudioPlayer таким образом, это выдаст вам ошибку.

var audioPlayer = AVAudioPlayer() or
var audioPlayer: AVAudioPlayer = AVAUdioPlayer()

затем измените его на это, и он будет работать, это правильное объявление

    var audioPlayer: AVAudioPlayer?

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

    func setupAudioPlayer() {
      let path = Bundle.main.path(forResource: "music.mp3", ofType:nil)!
      let url = URL(fileURLWithPath: path)
    
      do {
        audioPlayer = try AVAudioPlayer(contentsOf: url)
      } catch let error{
        //You can find which error at the time of initializing audio player.
      }
    }

   @IBAction func playButton_Action(_ sender: UIButton) {
       if let audioPlayer = audioPlayer {
           audioPlayer.play()
       }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...