1

チャットバブルにAVPlayerViewControllerを追加しようとしました。受信した音声やビデオメッセージをチャットバブルで直接再生できるようにしました。私のUITableViewリストには、これらのバブルの多くが含まれています。しかし、私はテーブルビューをスクロールしようとすると、アプリが示すクラッシュします - [AVPlayerViewController retain]: message sent to deallocated instance.- [AVPlayerViewController retain]:割り当て解除されたインスタンスに送信されたメッセージ

ここでは以下の各チャットバブルに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はファイルパスが含まれています(オーディオ/ビデオ)、オブジェクトをUITableViewセルのコンテンツビューに追加しようとしていますが、上記のエラーがスローされます。誰でも私が何をすべきか教えてください。

答えて

1

すべてのセルにはAVPlayerViewControllerを含めないでください。それは恐ろしいです!

あなたはビデオのサムネイルを表示するだけですべてのセルのようなものを管理し、ビデオのURLの配列を管理する必要があります。現在、共通のAVPlayerViewControllerを使用して動画を再生します。私はユーザーがセルをタップするか、またはセルのボタンを再生し、そのURLをプレーヤーに渡してビデオを再生するときを意味します!

+0

提案していただきありがとうございます。オーディオファイルを再生するロジックを教えてください。 –

+0

@ Lion - 私も同じプレーヤーを使用して、オーディオファイルを再生する必要がありますか? –

+0

ビデオを作成して再生するアクションメソッドを作成することができます(問題のコードと同様のコード)。ボタンをクリックするか 'didselectrow'で選択したビデオURLをこれらのメソッドに渡し、AVPlayerViewControllerを作成してビデオを再生します! – Lion

関連する問題