Я создаю приложение для обмена сообщениями с помощью SwiftUI и хочу добавить к этому функцию видеовызова. Я использовал SkyWay webRTC API (https://webrtc.ecl.ntt.com/en/) для достижения этой цели, и я мог создать пример проекта, написанного в быстром коде. Теперь я пытаюсь связать локальный поток с представлением SKWVideo и обернуть его в UIViewRepresentable. Но я застрялс сообщением об ошибке ниже.
import SwiftUI
import SkyWay
import UIKit
struct ContentView: View {
@State var video = SKWVideo()
var body: some View {
VideoView(localStreamView: $video)
}
}
struct VideoView: UIViewRepresentable {
@Binding var localStreamView: SKWVideo
func makeUIView(context: Context) -> SKWVideo {
let option: SKWPeerOption = SKWPeerOption.init()
option.key = "xxxx"
option.domain = "localhost"
let peer = SKWPeer(options: option)
SKWNavigator.initialize(peer!)
let constraints: SKWMediaConstraints = SKWMediaConstraints()
let localStream = SKWNavigator.getUserMedia(constraints)
localStream?.addVideoRenderer(localStreamView, track: 0)
return localStreamView
}
func updateUIView(_ uiView: SKWVideo, context: Context) {
//
}
}
Я получил эту ошибку
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.'
Я запустил его на реальном устройстве iPhone 7, и я написал настройки plist. Я сейчас совершенно не знаюПожалуйста, помогите мне ..
iOS 13.0 xcode 11.0