1

Ich versuche eine AVPlayerViewController zu einer Sprechblase hinzufügen, so dass alle Audio- oder Video-Nachrichten, wenn sie empfangen werden, direkt in der Chat-Blase gespielt werden können. Meine UITableView Liste enthält viele dieser Blasen. Aber wenn ich versuche, die Tabellenansicht zu scrollen, wird die App zeigt abgestürzt - [AVPlayerViewController retain]: message sent to deallocated instance.- [AVPlayerViewController beibehalten]: Nachricht an freigegebene Instanz gesendet

Hier unten ist mein Code ein AVPlayerViewController Objekts zu jeder Chat-Blase für das Hinzufügen von: -

_playerViewController = [[AVPlayerViewController alloc] init]; 
_playerViewController.player = [AVPlayer playerWithURL:url]; 
_playerViewController.view.frame = CGRectMake(10.0, 5.0, 190.0 , 90.0); // self.view.bounds; 
_playerViewController.showsPlaybackControls = YES; 

[_playerViewController.view setTranslatesAutoresizingMaskIntoConstraints:YES]; 
[_playerViewController .view setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin]; 
[cell.contentview addsubview:_playerViewController.view]; 

die URL enthält den Dateipfad (Audio/Video), und ich versuche, das Objekt _playerViewController zu UITableView Zelle Inhalt anzuzeigen, aber es löst den obigen Fehler. Kann mir bitte jemand sagen, was ich tun soll.

Antwort

1

Jede Zelle sollte AVPlayerViewController nicht enthalten. Es ist schrecklich!

Sie sollten Ihre Sachen wie jede Zelle verwalten nur Miniaturansicht Ihres Videos anzeigen und Sie sollten Array von URLs von Videos verwalten. Verwenden Sie jetzt das gemeinsame AVPlayerViewController, um ein beliebiges Video abzuspielen. Ich meine, wenn der Benutzer eine Zelle tippt oder den Knopf der Zelle spielt, dann übergebe diese URL dem Spieler und spiele Video !!

+0

Danke für den Vorschlag. Können Sie mir bitte auch die Logik zum Abspielen von Audiodateien nennen? –

+0

@ Lion-sollte ich den gleichen Player auch die Audiodateien abspielen? –

+0

Sie können eine Aktionsmethode erstellen, die Video erstellt und wiedergibt (ähnlicher Code, den Sie angezeigt haben). Klicken Sie dann auf oder klicken Sie auf "Didselectrow", um die ausgewählte Video-URL an diese Methode zu übergeben und AVPlayerViewController zu erstellen und Video abzuspielen! – Lion

Verwandte Themen