Swift 5.1 Hatası: [eklenti] AddInstanceForFactory: <CFUUID kimliği için kayıtlı fabrika yok


15

Uygulama aşağıdaki hata mesajıyla kilitleniyor

2019-10-12 20:01:34.332334-0700 Awesome App[26368:3535170] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600002903280> F8BB1C28-BAE8-11D6-9C31-00039315CD46

Çökme noktasındaki kesme noktası AVAudioPlayer ile ilişkili gibi görünüyor

let path = Bundle.main.path(forResource: "menu_background.mp3", ofType:nil)!
audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path)) ---> breakpoint

Yanıtlar:


1

AVAudioPlayer hakkında başka bir stackoverflow iş parçacığında çözüm bulduk, işte burada:

Eğer başlatırsanız AVAudioPlayerBeğen

var wrongMusicPlayer: AVAudioPlayer = AVAudioPlayer()VEYA wrongMusicPlayer = AVAudioPlayer()herhangi bir yöntemde lütfen kaldırın ve sadece gibi ilan edin var wrongMusicPlayer: AVAudioPlayer!.


1
Nedenini bilmiyorum .. ama işe yaradı .. Teşekkürler.
Rafaela Lourenço

9
Çözüm maalesef değil.
Phil

Lütfen belirtilen konulara bir bağlantı ekleyin. Teşekkür.
HenryRootTwo

1
buna henüz bir çözüm bulamayan var mı? aynı soruna sahip olmak ve bu kabul edilen cevap benim için çalışmıyor
alionthego

Benim için de çalışmıyor
maddy110989

0

Hata mesajının simülatörler için bir uyarı olduğuna inanıyorum, bu yüzden önemli değil.

Sorununuzun kodunuzda bir hata olduğunu düşünüyorum. Böyle bir şey olmalı:

let path = Bundle.main.path(forResource: "menu_background", ofType:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint

Burada forResource dosyanın adı ve ofType uzantısıdır. Ayrıca şu şekilde görünecek Bundle.main.url dosyasını da kullanabilirsiniz :

let path = Bundle.main.url(forResource: "menu_background", withExtension:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint


0

Kilitlenmeyi önlemek ve istisnayı incelemek için do / catch komutunu kullanabilir veya sorunu hep birlikte göz ardı edebilirsiniz try?. Benim için, bu sadece arama sırasında simülatörde görünüyordu:

try? AVAudioSession.sharedInstance().setCategory(.playback)

Benim durumumda görmezden gelmenin güvenli olduğunu düşünüyorum.


0

Hepinizin AVFoundation'ı Proje Genel Bilgileri sekmesindeki çerçeve listesine eklemiş olabileceğinizi düşünüyorum.

Hatalı Kod şöyleydi:

import SwiftUI
import AVFoundation

struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil
var audioPlayer: AVAudioPlayer

var body: some View {

var audioPlayer: AVAudioPlayerBeyanı satır çizgisinin hemen sonrasına taşıdıktan sonra import AVFoundationişe yaramış gibi görünüyordu.

Bu yüzden bir SwiftUIprojede aşağıdaki kod benim için çalıştı .

import SwiftUI
import AVFoundation
var audioPlayer: AVAudioPlayer!

struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil

var body: some View {
    VStack {
        Button("Play the Downloaded Track") {
            if let downloadedPath = self.downloadedFilePath?.path, FileManager().fileExists(atPath: downloadedPath) {
                do {
                    audioPlayer = try AVAudioPlayer(contentsOf: self.downloadedFilePath!)
                    guard let player = audioPlayer else { return }

                    player.prepareToPlay()
                    player.play()
                } catch let error {
                    print(error.localizedDescription)
                }
            } else {
                print("The file doesn not exist at path || may not have been downloaded yet")
            }
        }
    }
}

}

Başlangıçta CodeWithChris bu öğretici takip ediyordu ve tartışması da yukarıdaki değişime yol açtı. Ayrıca daha fazla örneğe ihtiyacınız varsa aşağıdaki öğreticiyi de kontrol edin .

Bu biriniz için yararlı olacağını umuyoruz!

Şerefe!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.