দৃশ্য: আমি একটি অ্যাপের ভিতরে একটি ওয়েবআরটিসি ভিউ তৈরি করছি ভিডিওগুলির ধারকটির সর্বদা উচ্চতা 160 হবে।
ধারকটির কেন্দ্রে সর্বাধিক 160 উচ্চতা সহ দূরবর্তী ভিডিওটি প্রদর্শিত হওয়া উচিত, ভিডিওর অনুপাতের সম্মানের জন্য প্রস্থকে ছোট করা উচিত। প্রস্থটিও প্রস্থের প্রস্থের চেয়ে বড় হতে পারে না, সেক্ষেত্রে প্রস্থটি প্রস্থের প্রস্থের সমান এবং উচ্চতাটি অনুপাতের অনুপাতে মানিয়ে নেওয়া উচিত।
উপরের ডানদিকে কোণে স্থানীয় ক্যামেরা থেকে সর্বোচ্চ 100 প্রস্থের সাথে স্থানীয় ভিডিও প্রদর্শিত হবে এবং উচ্চতা স্থানীয় ভিডিওর অনুপাতের সম্মানের জন্য মানিয়ে নেওয়া উচিত
এখন পর্যন্ত আমার কোড:
func createPeerConnection () {
// some other code
self.localStream = self.factory.mediaStream(withStreamId: "stream")
let videoSource = self.factory.videoSource()
let devices = RTCCameraVideoCapturer.captureDevices()
if let camera = devices.last,
let format = RTCCameraVideoCapturer.supportedFormats(for: camera).last,
let fps = format.videoSupportedFrameRateRanges.first?.maxFrameRate {
let intFps = Int(fps)
self.capturer = RTCCameraVideoCapturer(delegate: videoSource)
self.capturer?.startCapture(with: camera, format: format, fps: intFps)
videoSource.adaptOutputFormat(toWidth: 100, height: 160, fps: Int32(fps))
}
let videoTrack = self.factory.videoTrack(with: videoSource, trackId: "video")
self.localStream.addVideoTrack(videoTrack)
DispatchQueue.main.async {
if self.localView == nil {
let videoView = RTCEAGLVideoView(frame: CGRect(x: self.view.frame.size.width - 105, y: 5, width: 100, height: 160))
videoView.backgroundColor = UIColor.red
self.view.addSubview(videoView)
self.localView = videoView
}
videoTrack.add(self.localView!)
}
}
func peerConnection(_ peerConnection: RTCPeerConnection, didAdd stream: RTCMediaStream) {
self.remoteStream = stream
if let videoTrack = stream.videoTracks.first {
DispatchQueue.main.async {
if self.remoteView == nil {
let videoView = RTCEAGLVideoView(frame: CGRect(x: self.view.frame.size.width - 50, y: 0, width: 100, height: 160))
videoView.backgroundColor = UIColor.green
if let local = self.localView {
self.view.insertSubview(videoView, belowSubview: local)
} else {
self.view.addSubview(videoView)
}
self.remoteView = videoView
}
videoTrack.add(self.remoteView!)
}
}
}
স্থানীয় বা দূরবর্তী যে কোনও একটির ভিডিওর অনুপাত কীভাবে পাবেন তা আমি জানি না। আমার যদি তা থাকে তবে আমি তাদের প্রত্যেকের জন্য উপযুক্ত প্রস্থ এবং উচ্চতাগুলি গণনা করতে পারি