struct LePlay: View {
var fileName: String
init(fileName: String) {
self.fileName = fileName
}
@State var player = AVPlayer(url: URL(string: "https://blala.com/?n=" fileName)!)
I get
Cannot use instance member 'fileName' within property initializer; property initializers run before 'self' is available
in the last fileName in the code
I've already seen similar questions but none of the solutions there are working for me
CodePudding user response:
You need to initialise player in your init, as follows:
struct LePlay: View {
var fileName: String
@State var player: AVPlayer
init(fileName: String) {
self.fileName = fileName
_player = State(wrappedValue: AVPlayer(url: URL(string: "https://blala.com/?n=" fileName)!))
}
}
I'm not sure what will happen here, assigning a class to State.
You should wrap player in an ObservableObject class, which you can assign to a StateObject
