Merge branch 'master' into feat/playback-ref-functions
This commit is contained in:
@@ -5,14 +5,16 @@ import GoogleInteractiveMediaAds
|
||||
class RCTIMAAdsManager: NSObject, IMAAdsLoaderDelegate, IMAAdsManagerDelegate {
|
||||
|
||||
private weak var _video: RCTVideo?
|
||||
private var _pipEnabled:() -> Bool
|
||||
|
||||
/* Entry point for the SDK. Used to make ad requests. */
|
||||
private var adsLoader: IMAAdsLoader!
|
||||
/* Main point of interaction with the SDK. Created by the SDK as the result of an ad request. */
|
||||
private var adsManager: IMAAdsManager!
|
||||
|
||||
init(video:RCTVideo!) {
|
||||
init(video:RCTVideo!, pipEnabled:@escaping () -> Bool) {
|
||||
_video = video
|
||||
_pipEnabled = pipEnabled
|
||||
|
||||
super.init()
|
||||
}
|
||||
@@ -86,6 +88,9 @@ class RCTIMAAdsManager: NSObject, IMAAdsLoaderDelegate, IMAAdsManagerDelegate {
|
||||
}
|
||||
// Play each ad once it has been loaded
|
||||
if event.type == IMAAdEventType.LOADED {
|
||||
if (_pipEnabled()) {
|
||||
return
|
||||
}
|
||||
adsManager.start()
|
||||
}
|
||||
|
||||
|
@@ -65,6 +65,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
private var _filterName:String!
|
||||
private var _filterEnabled:Bool = false
|
||||
private var _presentingViewController:UIViewController?
|
||||
private var _pictureInPictureEnabled = false
|
||||
|
||||
/* IMA Ads */
|
||||
private var _adTagUrl:String?
|
||||
@@ -120,10 +121,14 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
onPictureInPictureStatusChanged?([ "isActive": NSNumber(value: false)])
|
||||
}
|
||||
|
||||
func isPipEnabled () -> Bool {
|
||||
return _pictureInPictureEnabled
|
||||
}
|
||||
|
||||
init(eventDispatcher:RCTEventDispatcher!) {
|
||||
super.init(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
|
||||
#if USE_GOOGLE_IMA
|
||||
_imaAdsManager = RCTIMAAdsManager(video: self)
|
||||
_imaAdsManager = RCTIMAAdsManager(video: self, pipEnabled: isPipEnabled)
|
||||
#endif
|
||||
|
||||
_eventDispatcher = eventDispatcher
|
||||
@@ -168,7 +173,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
#if USE_GOOGLE_IMA
|
||||
_imaAdsManager = RCTIMAAdsManager(video: self)
|
||||
_imaAdsManager = RCTIMAAdsManager(video: self, pipEnabled: isPipEnabled)
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -197,7 +202,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
|
||||
@objc func applicationWillEnterForeground(notification:NSNotification!) {
|
||||
self.applyModifiers()
|
||||
if _playInBackground {
|
||||
if !_playInBackground {
|
||||
_playerLayer?.player = _player
|
||||
_playerViewController?.player = _player
|
||||
}
|
||||
@@ -261,8 +266,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
// MARK: - Player and source
|
||||
@objc
|
||||
func setSrc(_ source:NSDictionary!) {
|
||||
DispatchQueue.global(qos: .default).async { [weak self] in
|
||||
guard let self = self else {return}
|
||||
let dispatchClosure = {
|
||||
self._source = VideoSource(source)
|
||||
if (self._source?.uri == nil || self._source?.uri == "") {
|
||||
self._player?.replaceCurrentItem(with: nil)
|
||||
@@ -356,6 +360,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
}.catch{_ in }
|
||||
self._videoLoadStarted = true
|
||||
}
|
||||
DispatchQueue.global(qos: .default).async(execute: dispatchClosure)
|
||||
}
|
||||
|
||||
@objc
|
||||
@@ -459,6 +464,11 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
try audioSession.setActive(true, options: [])
|
||||
} catch {
|
||||
}
|
||||
if (pictureInPicture) {
|
||||
_pictureInPictureEnabled = true
|
||||
} else {
|
||||
_pictureInPictureEnabled = false
|
||||
}
|
||||
_pip?.setPictureInPicture(pictureInPicture)
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user