Мой проект более или менее работает, но есть небольшая проблема. Когда я выбираю другой случай SegmentControl, воспроизводится правильное видео, например, когда я нажимаю case1, первое видео воспроизводится в моем представлении. Но когда я касаюсь дела, я вижу refre sh подпредставления (я добавил видео об этом). Два видео начинаются и заканчиваются в одном кадре. У кого-нибудь есть идеи, как это исправить.
(извините за мой очень плохой Engli sh, но я немец и у нас нет таких блестящих сайтов)
Я просто начал программировать как хобби, так что я не знаю, есть ли лучший способ решить это. Большое спасибо.
Видео проблемы:
https://youtu.be/IfttEI8GXQw
Мой код:
class ViewController: UIViewController {
@IBOutlet weak var videoLayer: UIView!
var player: AVPlayer!
var avpController = AVPlayerViewController()
func first(){
let moviePath = Bundle.main.path(forResource: "aVid1", ofType: "mp4")
if let path = moviePath{
let url = NSURL.fileURL(withPath: path)
self.player = AVPlayer(url: url)
self.avpController = AVPlayerViewController()
self.avpController.player = self.player
avpController.view.frame = videoLayer.frame
avpController.showsPlaybackControls = false
avpController.view.alpha = 0
self.addChild(avpController)
self.view.addSubview(avpController.view)
avpController.view.alpha = 1
player.play()
}
}
func second(){
let moviePath = Bundle.main.path(forResource: "aVid1_2", ofType: "mp4")
if let path = moviePath{
let url = NSURL.fileURL(withPath: path)
self.player = AVPlayer(url: url)
self.avpController = AVPlayerViewController()
self.avpController.player = self.player
avpController.view.frame = videoLayer.frame
avpController.showsPlaybackControls = false
avpController.view.alpha = 0
self.addChild(avpController)
self.view.addSubview(avpController.view)
avpController.view.alpha = 1
player.play()
}
}
override func viewDidLoad() {
super.viewDidLoad()
let moviePath = Bundle.main.path(forResource: "aVid1", ofType: "mp4")
if let path = moviePath{
let url = NSURL.fileURL(withPath: path)
self.player = AVPlayer(url: url)
self.avpController = AVPlayerViewController()
self.avpController.player = self.player
avpController.view.frame = videoLayer.frame
avpController.showsPlaybackControls = false
self.addChild(avpController)
self.view.addSubview(avpController.view)
}
}
@IBAction func Switcher(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
second()
case 1:
first()
default:
break
}
}
}