/ / Strata prehrávača YouTube, keď sa posúva mimo zobrazenia kvôli opakovane použiteľným bunkám v zobrazení tabuľky - ios, swift, tableview, swift4, ytplayerview

Prehrávač Youtube stráca, keď sa v zozname stôl posúva z dôvodu opätovne použiteľných buniek - ios, swift, tableview, swift4, ytplayerview

Stavím instagram, ako je napríklad informačný kanál. Každý príspevok predstavuje buď spotifikovanú streamovanú skladbu alebo video z Youtube, ktoré sa prehráva vo vlastnom zobrazení prehrávača YTplayer. Ak prehrám bunku videa a potom prejdem informačným kanálom, video sa bude naďalej prehrávať, aj keď to nemôžete vidieť. Ak v tomto okamihu prejdem na bodový príspevok a stlačím tlačidlo Prehrať, chcem, aby sa video zastavilo. Nemôžem to urobiť. Pokúsil som sa sledovať video bunku, ktorá bola naposledy prehrávaná, a zastaviť inštanciu YTplayer, ale bunka sa v tomto okamihu znova používa a neexistuje. Teda to nedokážem. Má niekto nejaké nápady, ako to môžem urobiť?

Moja vlastná bunková trieda tabuľky má zobrazenie YTplayer. Načítam iba niektoré bunky pomocou ID videa youtube, ktoré sa stanú video bunkami YouTube, keď sa načíta zobrazenie tabuľky.

odpovede:

0 pre odpoveď č. 1

Myslím, že musíte implementovať

func tableView(_ tableView: UITableView,
didEndDisplaying cell: UITableViewCell,
forRowAt indexPath: IndexPath) {

// access the playing video of the cell and stop it

}

0 pre odpoveď č. 2

Vyriešil som to. Hneď po svojom dequeueReusableCell skontrolujem, či bunka obsahuje video príspevok. Na tento účel používam príznak reťazca, ktorý som nastavil v príspevku. Ak je to tak, deklarujem svoj ovládač tabuľky ako svojho delegáta prehrávania. Ak odtiaľto prehrám bunku a prejdem na bunku Spotify a prehrám ju, použijem player.stopVideo () na zastavenie prehrávača YouTube.