Also meine App enthält eine uitableview/uitableviewcell
und in der uitableview/uitableviewcell
ist eine AVplayer
. Ich möchte den Videoplayer pausieren können, wenn die Taste angetippt wird. Als ich den AV-Player zu einer globalen Variable machte, konnte ich das Video anhalten und abspielen, aber das Video wurde beim Scrollen nicht durch das nächste Video ersetzt.Wie übergebe ich Daten eine Funktion von einem programmierten uibutton?
// video player
let videoURL = URL(string: uVideoUrl)!
let player = AVPlayer(url: videoURL)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = CGRect(x: cell.backgroundImg.frame.origin.x, y: cell.backgroundImg.frame.origin.y, width: cell.backgroundImg.frame.width - 5, height: cell.backgroundImg.frame.height)
cell.layer.addSublayer(playerLayer)
// play button
let playButton = UIButton(frame: CGRect(x: 15, y: 75, width: 30, height: 30))
playButton.setImage(UIImage(named: "playimg.png"), for: .normal)
** playButton.addTarget(self, action: #selector(playVideo(player:player)), for: .touchUpInside) **
cell.addSubview(playButton)
Hier ist die Funktion zum Abspielen des Videos.
func playVideo(player:AVPlayer) {
player.play()
}
Der Text/Code mit ** ist der Code, den ich nicht herausfinden können, wie sie mich in den Spieler übergeben lassen, für mich um das Video abzuspielen.
Sie keine Parameter an Selektoren passieren kann –
Können Sie mehr Code in Ihre 'cellForRowAtIndexPath'-Funktion einfügen? –
was genau möchten Sie tun? – KKRocks