Я пытаюсь написать приложение, которое использует RTSP Video, и я хотел бы в конечном итоге использовать функциональность AVCaptureSession для записи и сохранения видео.
Я смог транслировать видео в реальном времени через мой View Controller, используяэтот кодКогда я пытаюсь переместить код в другой файл swift, я получаю ошибку, касающуюся комбинации Objective C, которую View Controller позволяет вам вызывать, но функция, которую я пытаюсь написать, теперь позволяет это делать.Это функция обновления.Кроме того, я не совсем понимаю эту часть кода, так как кажется, что он ссылается на ViewController, и я не уверен, на что он должен ссылаться, если он находится вне ViewController "target: self, selector: #selector (ViewController).update),
Код ViewController в настоящее время использует интерфейс, созданный в C-файле, который выглядит следующим образом для создания проигрывателя RTSP.
Также, если кто-нибудь может помочь мне с тем, какполучить UIImage в качестве типа устройства, используемого для AVCaptureSession / PreviewLayer. Это было бы очень полезно.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView! var video: RTSPPlayer!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
video = RTSPPlayer(video: "rtsp://admin:admin@192.168.150.243", usesTcp: false)
video.outputWidth = Int32(UIScreen.main.bounds.width)
video.outputHeight = Int32(UIScreen.main.bounds.height)
video.seekTime(0.0)
let timer = Timer.scheduledTimer(timeInterval: 1.0/30, target: self, selector: #selector(ViewController.update), userInfo: nil,
repeats: true)
timer.fire()
}
@objc func update(timer: Timer) {
if(!video.stepFrame()){
timer.invalidate()
video.closeAudio()
}
imageView.image = video.currentImage
}
}