Skip to content

Conversation

@moskalakamil
Copy link
Contributor

@moskalakamil moskalakamil commented Oct 9, 2024

Feature: Video Player Integration

This PR implements a video player for the app.

Changes:

  • Added sample public videos and corresponding thumbnails.
  • Added a thumbnail on the main and details screens.
  • Added a video player to the player screen.
  • Implemented custom controls for Android TV and Android-based OSes, including play/pause, seek, back functions.
  • Kept native controls for Apple TV.
  • Working web support

Testing:

  • Prebuild the app.
  • Run yarn install in the root directory.
  • Use yarn android --devices and select a TV device.
  • Install Pods
  • Use yarn ios.

I've even tested it on Fire TV! :)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution under the terms of your choice.

@moskalakamil
Copy link
Contributor Author

Hey @giolaq, I've set up a draft PR to integrate the video player. Could you take a look when you have a chance and let me know what you think?

@giolaq
Copy link
Contributor

giolaq commented Oct 9, 2024

Hi @moskalakamil ! This is great, I was actually thinking to add a proper video player screen. Feel free to add on this PR! 🔝

@moskalakamil moskalakamil marked this pull request as ready for review October 22, 2024 20:33
@moskalakamil
Copy link
Contributor Author

Hey! @giolaq 👋

I've implemented the changes I described earlier - sorry it took a bit longer, but I got it done! :)) Additionally, I have a suggestion that could be an interesting addition to this project.

As maintainers of react-native-video, we’ve been working on some video examples, including support for DRM-protected content. We created a component where the user pastes a token generated by a form, and once it's added, everything works smoothly (you can find the example here: DRMExample.tsx).

We haven’t fully completed this yet, but we’re almost there. I was thinking it might be worth considering adding even one video with DRM support to your app. Applications like yours often leverage this kind of mechanism, so it could be a cool way to expand functionality and compatibility with more advanced playback scenarios.

Let me know what you think! 😊

@giolaq
Copy link
Contributor

giolaq commented Oct 22, 2024

Thank you @moskalakamil ! It looks great, the only thing with this app we want to support even the web-based TVs. Any idea about how to support the video player also in this case?
Worse case scenario we can differentiate player.tsx for web and android/tvOS.

I totally like the idea to support DRM!

@moskalakamil
Copy link
Contributor Author

I get it, I’ll come back with an answer tomorrow

@giolaq
Copy link
Contributor

giolaq commented Oct 22, 2024

Thank you!

@moskalakamil
Copy link
Contributor Author

I need a little more time to fully sort this out; I'll get back to you asap

@moskalakamil moskalakamil marked this pull request as draft October 24, 2024 18:11
@moskalakamil
Copy link
Contributor Author

moskalakamil commented Oct 30, 2024

Hi @giolaq, we are planning to add basic web support for react-native-video soon, and I'll keep you updated once it's live. In the meantime, we just finished implementing the DRM logic for our example today, so you can check it out to see how it looks in RNV repo

@giolaq
Copy link
Contributor

giolaq commented Oct 30, 2024

Amazing thank you!

@moskalakamil moskalakamil marked this pull request as ready for review November 17, 2024 20:03
@moskalakamil
Copy link
Contributor Author

Hi @giolaq, good news! Web support is working now as well

@giolaq
Copy link
Contributor

giolaq commented Nov 17, 2024

Thank you @moskalakamil! Amazing work

@giolaq giolaq merged commit 93034a2 into AmazonAppDev:main Nov 17, 2024
@moskalakamil
Copy link
Contributor Author

Thank you 🙌

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants