সুইফ্ট 5.1 ত্রুটি: [প্লাগইন] AddInstanceForF কারখানা: আইডি <সিএফইউআইডি জন্য কোনও কারখানা নিবন্ধিত নেই


14

অ্যাপ্লিকেশনটি নিম্নলিখিত ত্রুটি বার্তার সাথে ক্র্যাশ হয়েছে

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

ক্র্যাশ-এ ব্রেকআপপয়েন্টটি AVAudioPlayer এর সাথে সম্পর্কিত বলে মনে হচ্ছে

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

উত্তর:


1

আমি AVAudioPlayer সম্পর্কে অন্য স্ট্যাকওভারফ্লো থ্রেডে সমাধানটি পেয়েছি, এটি এখানে:

আপনি যদি আপনার AVAudioPlayerপছন্দ শুরু করেন

var wrongMusicPlayer: AVAudioPlayer = AVAudioPlayer()অথবা যে wrongMusicPlayer = AVAudioPlayer()কোনও পদ্ধতিতে দয়া করে এটি সরান এবং ঠিক এর মতো ঘোষণা করুন var wrongMusicPlayer: AVAudioPlayer!


1
কেন জানি না .. তবে এটি কাজ করেছিল .. ধন্যবাদ।
রাফায়েলা লরেনিয়াও

9
দুর্ভাগ্যক্রমে সমাধান নয়।
ফিল

উল্লেখ থ্রেড একটি লিঙ্ক যুক্ত করুন। ধন্যবাদ.
হেনরিরটটো দুই

1
এখনও এর সমাধান কি কেউ পেয়েছে? একই সমস্যা হচ্ছে এবং এই গৃহীত উত্তরটি আমার পক্ষে কাজ করে না
alionthego

আমার জন্য পাশাপাশি কাজ করে না
maddy110989

0

আমি বিশ্বাস করি যে ত্রুটি বার্তা সিমুলেটরগুলির জন্য একটি সতর্কতা তাই এটি গুরুত্বপূর্ণ নয়।

আমি মনে করি আপনার সমস্যাটি আপনার কোডের একটি বাগ। এর মতো কিছু হওয়া উচিত:

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

যেখানে ফরসোর্স ফাইলটির নাম এবং অফ টাইপটি এক্সটেনশন। আপনি Bundle.main.url ব্যবহার করতে পারেন যা দেখতে এইরকম হবে:

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


0

ক্র্যাশ এড়াতে এবং ব্যতিক্রমটি পরীক্ষা করতে আপনি ডু / ক্যাচ ব্যবহার করতে পারেন বা সমস্তটিকে একসাথে উপেক্ষা করতে পারেন try?। আমার জন্য, কল করার সময় এটি কেবল সিমুলেটারে প্রদর্শিত হয়েছিল:

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

আমি মনে করি এটি আমার ক্ষেত্রে এড়ানো নিরাপদ।


0

আমি বিশ্বাস করি আপনারা সবাই প্রকল্প সাধারণ তথ্য ট্যাবে ফ্রেমওয়ার্ক তালিকায় AVFoundation যুক্ত করেছেন।

নিম্নরূপ ভ্রষ্ট কোড ছিল:

import SwiftUI
import AVFoundation

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

var body: some View {

এবং আমি var audioPlayer: AVAudioPlayerঘোষণাকে সরল করার পরে লাইনের লাইনের পরে import AVFoundationমনে হচ্ছে এটি কাজ করছে।

সুতরাং নিম্নলিখিত কোডটি আমার জন্য একটি SwiftUIপ্রকল্পে কাজ করেছিল।

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")
            }
        }
    }
}

}

আমি প্রথমে কোড উইথক্রিসের এই টিউটোরিয়ালটি অনুসরণ করছিলাম এবং এর আলোচনাও উপরের পরিবর্তনের দিকে পরিচালিত করেছিল। আপনার আরও উদাহরণের প্রয়োজন হলে টিউটোরিয়াল অনুসরণ করেও চেকআউট করুন ।

আশা করি এটি আপনার কারও জন্য সহায়ক হবে!

চিয়ার্স!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.