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)
すべてが機能しますが、 を に追加するlocalVideoView
とlocalVideoTrack
エラーが発生します。
-[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ビットデバイスでテストしています。ありがとう!