Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple player instance in UICollectionView with rejected_inactive_tab error #68

Open
staceypyee opened this issue Dec 22, 2021 · 2 comments

Comments

@staceypyee
Copy link

staceypyee commented Dec 22, 2021

I would like to have multiple video instance in a horizontal UICollectionView which keep the last playing state, something like the Home screen in dailymotion iOS app downloadable from App store. User should be able to continue from the previous fetch video.

How can we do this? I don't see any sample from the sample code

What have been done:
I have tried to put DMPlayerViewController view as a view in the collection view cell.
Whenever the list is populated,
playerViewController?.load(videoId: videoId, params: "{ \"autoplay\": false }", completion: nil) will be triggered for each cells.

Whenever the screen is loaded with the collection view cells, these are the logs produced with
Code:

public func player(_ player: DMPlayerViewController, didReceiveEvent event: PlayerEvent) {
        logger.log(message: "Player event \(event)", LoggingOption: .debug)
        switch event {
        case .timeEvent(name: let name, time: let time):
            logger.log(message: "Player event timeEvent \(name) time \(time)", LoggingOption: .debug)
        case .namedEvent(name: let name, data: let data):
            logger.log(message: "Player event namedEvent \(name) data \(data)", LoggingOption: .debug)
        case .errorEvent(error: let error):
            logger.log(message: "Player event errorEvent \(error)", LoggingOption: .debug)
        }
   }

Result:

📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent(name: "scalemodechange", data: Optional(["scaleMode": "fit"]))

📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent scalemodechange data Optional(["scaleMode": "fit"])
📖
XXDailyMotionPlayer.playerDidInitialize(_:)
playerDidInitialize <DailymotionPlayerSDK.DMPlayerViewController: 0x13679d3f0>
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event namedEvent(name: "apiready", data: nil)
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent apiready data nil
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event namedEvent(name: "volumechange", data: Optional(["volume": "1"]))
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event namedEvent volumechange data Optional(["volume": "1"])
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event timeEvent(name: "videochange", time: 87.0)
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event timeEvent videochange time 87.0
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent(name: "playback_ready", data: nil)
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event namedEvent playback_ready data nil
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent(name: "playback_ready", data: nil)
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event namedEvent playback_ready data nil
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent(name: "subtitlesavailable", data: Optional(["subtitles[]": "en"]))
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent subtitlesavailable data Optional(["subtitles[]": "en"])
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:)
Player event namedEvent(name: "subtitlechange", data: Optional(["subtitle": "-1"]))
📖
XXDailyMotionPlayer.player(_:didReceiveEvent:) 
Player event namedEvent subtitlechange data Optional(["subtitle": "-1"])

I have a custom play pause button which will trigger
dmPlayerViewController.play() or dmPlayerViewController.pause()

Whenever I tapped on the play button, I always saw this error in the logs:
Player event namedEvent(name: "playback_resolution", data: Optional(["status": "rejected", "reason": "rejected_inactive_tab"]))
What could be the reason for this error?

In the documentation, embed multiple players only appears for web.
How can we do this for iOS?

Thanks

@staceypyee staceypyee changed the title Multiple player instance in UICollectionView Multiple player instance in UICollectionView with rejected_inactive_tab error Dec 24, 2021
@staceypyee
Copy link
Author

Is there any updates?

@fdobjenschi
Copy link
Contributor

Hello @staceypyee,

After we analysed your problem and discussed with the team the issue seems to be that the app is playing one or more videos that are not yet visible on the screen.
Can you please make sure that the videos are visible when play method is called and also please check that autoplay is off also.
Let us know if we can help you further .

Thanks,
Florin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants