- [AVPlayerViewController retain]:发送给deallocated实例的消息

时间:2016-10-21 10:26:03

标签: ios objective-c retain avplayerviewcontroller uibubbletableview

我正在尝试将AVPlayerViewController添加到聊天气泡中,以便收到的任何音频或视频消息都可以直接在聊天气泡中播放。我的UITableView列表包含许多这些气泡。但是当我尝试滚动表格视图时,应用程序崩溃显示 - [AVPlayerViewController retain]: message sent to deallocated instance.

以下是我为每个聊天气泡添加AVPlayerViewController对象的代码: -

_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];

url包含文件路径(音频/视频),我正在尝试将_playerViewController对象添加到UITableView单元格的内容视图中,但它会引发上述错误。任何人都可以告诉我我应该做什么。

1 个答案:

答案 0 :(得分:1)

每个单元格不应包含AVPlayerViewController。太可怕了!

你应该管理你的东西,就像每个单元格只显示你的视频缩略图,你应该管理一系列的视频网址。现在使用普通AVPlayerViewController来播放任何视频。我的意思是当用户点击单元格或播放单元格按钮然后将该网址传递给播放器并播放视频!!