Как создать функцию видеовызова с помощью swiftUI? - PullRequest
1 голос
/ 05 октября 2019

Я создаю приложение для обмена сообщениями с помощью 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...