0

iOS webRTC アプリでローカル メディア ストリームを作成しようとしています。以下のコードを参照してください

let localStream = pcFactory.mediaStream(withLabel: "ARDAMS")!

let audio = pcFactory.audioTrack(withID: "ARDAMSa0")
localStream.addAudioTrack(audio!)

var device: AVCaptureDevice?
for captureDevice in AVCaptureDevice.devices(withMediaType: AVMediaTypeVideo){
    if let captureDevice = captureDevice as? AVCaptureDevice{
        if captureDevice.position == AVCaptureDevicePosition.front{
            device = captureDevice
        }
    }
}

if let device = device{
    let capture = RTCVideoCapturer(deviceName: device.localizedName)
    let videoSource = pcFactory.videoSource(with: capture, constraints: nil)
    localVideoTrack = pcFactory.videoTrack(withID: "ARDAMSv0", source: videoSource)
    localStream.addVideoTrack(localVideoTrack)
}


self.peerConnection?.add(localStream)

localVideoTrack?.add(localVideoView)

すべてが機能しますが、 を に追加するlocalVideoViewlocalVideoTrackエラーが発生します。

-[RTCI420Frame nativeHandle]: unrecognized selector sent to instance 0x170010620

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RTCI420Frame nativeHandle]: unrecognized selector sent to instance 0x170010620'

すべてのコードはメイン スレッドで実行され、アプリには適切なアクセス許可と plist キーがあります。デバッガーを使用してコードを 1 行ずつ見ていくと、すべてが正しく実行されているように見えます。このコードは Obj-C AppRTC デモから取得したもので、swift に変換されたばかりです。クラッシュする私の迅速なプロジェクトと動作中の AppRTC プロジェクトの違いを見つけることができないようです。私が間違っていることは何ですか?64ビットデバイスでテストしています。ありがとう!

4

0 に答える 0