0

AVPlayerViewControllerAVPlayerで、AVPlayerItem(iOS 10、Xcode 8、Objective C)で初期化しています。 AVPlayerViewControllerは、一部のサブビュー内に「インライン」で表示され、すべてがネイティブ再生コントロールと完全に機能します。AVPlayerViewControllerがフルスクリーンから復帰した後に停止する

ネイティブのフルスクリーンボタンを押すと、正常に機能し、フルスクリーンモードに切り替わります(左上に完了ボタンが表示されます)。

私の問題は、私はフルスクリーンから戻るために[Done]ボタンを押したときに、何らかの理由でプレーヤーが再生を停止している自分自身をリセットして、私は.currentItemをチェックすると、私はそれがnilだ参照してください。

ここには何が起こっていますか?なぜAVPlayerViewControllerAVPlayerItemをフルスクリーンからフルスクリーンに切り替えるのを維持できないのですか?マットの参照@使用

+1

「ここで何が起こっているのですか?」良い質問。しかし、コードを一切表示していないので、誰が知っていますか?あなたが描写している振る舞いは、まれに起こることはありません。たとえば、このサンプルプロジェクトをダウンロードして実行します。https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/bk2ch15p660EmbeddedAVKitムービーを再生してフルスクリーンに拡大し、完了したら、一時停止しますすべて;その時点から再開することができます。何も "リセット"されません。だからあなたはAVPlayerをリセットする何かをしているに違いありません。しかし、あなたはそれが何であるかについて何の手がかりも与えていません。 – matt

+0

あなたが正しいです、私はいくつかのコードを掲載する必要があります。私はいくつかのコードで私のソリューションを投稿しています – mllm

答えて

0

は、私は私が異なって行わたいことAVPlayerItemなしAVPlayerViewControllerplayerプロパティを設定したことを見た、とだけ(replaceCurrentItemWithPlayerItem()に頼るつまり

後でそれを設定する - 。から私の経験では、あなたはURLまたは任意のAVPlayerItemAVPlayerViewControllerAVPlayerの両方を初期化するだけにして、子ビューコントローラとしてAVPlayerViewControllerを追加する必要があります

自動レイアウトせずに使用するためのコード:。

if let playerView = self.playerView { 
    let playerItem = AVPlayerItem(url: self.url) 
    let player = AVPlayer(playerItem: playerItem) 

    let playerVc = AVPlayerViewController() 
    playerVc.player = player 

    self.addChildViewController(playerVc) 
    playerVc.view.frame = playerView.bounds 
    playerView.addSubview(playerVc.view) 
    playerVc.didMove(toParentViewController: self) 

    player.play() 
} 
+1

こんにちは、@ mllm私は同じ問題に直面しています。私はあなたと同じコードを使用しています。 しかし、フルスクリーンモードに切り替えると、再生/一時停止モードがフルスクリーンに維持されます。しかし、全画面表示を終了すると、終了ボタンが押されたときと同じ持続時間に常に一時停止します。 –

関連する問題