AVKit を使用してユーザーにビデオを表示しています。
ユーザーがビデオを選択すると、AVKit の標準プレーヤーを使用して表示されます。これでフルスクリーンになります。
ユーザーが「Picture in Picture」にすることを選択した場合、ユーザーはアプリケーションの残りの部分を引き続き使用できます。
これは、ユーザーが再生する別のビデオを選択できることを意味します。このビデオは、ピクチャ イン ピクチャでまだ表示されている前のビデオと同時に (フルスクリーンで) 再生されます。
2 番目のビデオが選択されたときに最初の (PiP) ビデオを閉じたいのですが、2 番目のビデオを起動する前に、前のビデオを「破棄」しようとしましたが、うまくいきません。
それは PiP として表示されているため、AVPlayerViewController はもうそれを表していないと思います...
これを簡単に行う方法はありますか?
2 番目のビデオが再生されようとしている場合に、最初のビデオを強制終了しようとする (機能しない) 試みでビデオを再生する:
func play(FileName filename: String, FileType type: String)
{
if self.isVideoPlaying == YES
{
self.playerController!.dismiss(animated: YES, completion: { self.isVideoPlaying = NO ; self.play(FileName: filename, FileType: type) })
return
}
self.isVideoPlaying = YES
let path = Bundle.main.path(forResource: filename, ofType: type)
let url = NSURL(fileURLWithPath: path!)
let player = AVPlayer(url: url as URL)
...