3

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)

...
4

1 に答える 1