Совместное использование экрана с webrtc в iOS Swift

Я реализовал совместное использование экрана с помощью потоковой передачи Webrtc. Я использовал RPKit для демонстрации экрана. совместное использование экрана работает на мобильном телефоне iPhone11, но тот же код не работает на мобильном телефоне iPhone6s. у обоих мобильных телефонов была одинаковая версия iOS (iOS 13.4). Я хочу показать это на каждом устройстве iOS. Пожалуйста помоги мне с этим. пожалуйста, обратитесь к приведенному ниже коду:

 func startScreenShare() {
    let screenSharefactory = self.connectionFactory
    let screenShare_Stream = screenSharefactory.mediaStream(withStreamId :  "videostream")
    let videoCapturer = RTCVideoCapturer()
    let videoSource :  RTCVideoSource = screenSharefactory.videoSource()
    self.captureController?.stopCapture()
    self.peerConnection?.remove(stream)


    RPScreenRecorder.shared().startCapture(handler: { (cmSampleBuffer, rpSampleType, error) in



        switch rpSampleType {



        case RPSampleBufferType.video:

            // create the CVPixelBuffer

            guard let pixelBuffer: CVImageBuffer = CMSampleBufferGetImageBuffer(cmSampleBuffer) else {

                break

            }



            let rtcpixelBuffer = RTCCVPixelBuffer(pixelBuffer: pixelBuffer)



            let timeStampNs: Int64 = Int64(CMTimeGetSeconds(CMSampleBufferGetPresentationTimeStamp(cmSampleBuffer)) * 1000000000)



            let videoFrame =  RTCVideoFrame(buffer: rtcpixelBuffer, rotation: RTCVideoRotation._0, timeStampNs: timeStampNs)

            videoSource.capturer(videoCapturer, didCapture: videoFrame)



            let screenShare_VideoTrack = screenSharefactory.videoTrack(with :  videoSource, trackId :  "videotrack")

            screenShare_VideoTrack.isEnabled = true

            screenShare_Stream.addVideoTrack(screenShare_VideoTrack)



        case RPSampleBufferType.audioApp:

            break

        case RPSampleBufferType.audioMic:

            //                let audioTrack = screenSharefactory.audioTrack(withTrackId :  String.random())

            //                audioTrack.isEnabled = true

            //                screenShare_Stream.addAudioTrack(audioTrack)

            break

        default:

            print("sample has no matching type")

        }



        if self.peerConnection != nil

        {

            self.peerConnection?.add(screenShare_Stream)

        }



    })

}

person Sai Kumar Jonnadula    schedule 23.04.2020    source источник
comment
Кумар: что такое базовый класс connectionFactory?   -  person Daxesh Nagar    schedule 01.07.2020
comment
fileprivate var connectionFactory = RTCPeerConnectionFactory ()   -  person Sai Kumar Jonnadula    schedule 02.07.2020
comment
@kumar: Вы найдете какое-нибудь решение?   -  person Daxesh Nagar    schedule 04.07.2020
comment
да, я также обновил приведенный выше код.   -  person Sai Kumar Jonnadula    schedule 05.07.2020
comment
let timeStampNs: Int64 = Int64 (CMTimeGetSeconds (CMSampleBufferGetPresentationTimeStamp (cmSampleBuffer)) * 1000000000) это строка, которую я добавил в код   -  person Sai Kumar Jonnadula    schedule 05.07.2020
comment
Я реализовал тот же код, но он не работает. Не могли бы вы разобраться в этом. stackoverflow.com/ questions / 62775262 /   -  person Daxesh Nagar    schedule 08.07.2020