fredrikburmester / streamyfin

A Jellyfin client build with Expo
Mozilla Public License 2.0
710 stars 19 forks source link

Add ExpandedController to chromecast usage #106

Closed jakequade closed 2 weeks ago

jakequade commented 3 weeks ago

Love your work, and this incredible library. Great job!

In good faith, I wanted to offer some chromecast functionalities. I noticed it wasn't on the roadmap, I hope this is okay :)

Note: extending the androidmanifest.xml was done by way of this suggested post

Thanks again for this great app, happy to help / change anything as requested. This has been tested on Android using a Samsung Galaxy S21. I'm not able to test on iOS unfortunately, hopefully it plays nicely with the existing config option

fredrikburmester commented 3 weeks ago

Amazing! Thank you for this contribution 😁

fredrikburmester commented 3 weeks ago

@jakequade Just to double check, this is for android only right? Is it possible to create a similar plugin for iOS, in a similar way?

jakequade commented 3 weeks ago

@fredrikburmester it should work for iOS given the app.json setting for iOS linked above (sorry, on my phone atm). Happy to test it out and confirm once I'm back at keyboard in a couple hours. I did try get the build running on an ios device but had different xcode minimum target deployment ranges.

fredrikburmester commented 3 weeks ago

The existing app.json implementation is not working as far as i know. I don't think that setting is supported in the expo config. I opened an issue here: https://github.com/react-native-google-cast/react-native-google-cast/issues/538

jakequade commented 3 weeks ago

@fredrikburmester I've pushed a patch that injects the ios appdelegate code via a mod. I've had intermittent app signing issues when testing (generated xcode project doesn't like that my iphone isn't part of your expo team's signing config), so if you're able to test it that would be awesome. Alternatively I can send you my device guid and I could try running the eas build once you've provisioned it.

fredrikburmester commented 3 weeks ago

You can probably just remove the id from the config and that'll solve the signing issues! Not exactly sure but it worked for another contributor.

jakequade commented 3 weeks ago

@fredrikburmester nice - you're right, not rebuilding the ios directory had tripped me up. I've just tested on an iPhone 13 and it works the same as android. Scrubbing works, also has buttons for volume and captions.

jakequade commented 3 weeks ago

IMG_0019

From iPhone. The interface isn't the prettiest, but it's a starting point (I would have thought the background would be populated by the cast lib).

fredrikburmester commented 3 weeks ago

Wow that's a great looking interface! Last time I used the extended controls it did not look that great. Did you create the interface just now?

jakequade commented 3 weeks ago

Nope, it's just the default ExpandedController as far as I'm aware - source. :) glad it looks okay.

Edit: I've noticed some buffering issues intermittently with this change, I need to look into them a bit further.

MajorP93 commented 2 weeks ago

Looks very promising! Thanks for the contribution!

I am also very much interested in having scrub controls working when streaming to Chromecast.

Any updates on the buffering issues @jakequade ?

jakequade commented 2 weeks ago

@fredrikburmester apologies for the delay, no good excuse. I've found the source of the buffering issues, latest commit removes an additional play function call. This works as expected now, happy for you to have a look if you're able :) cc @MajorP93

fredrikburmester commented 2 weeks ago

Thank you, no worries at all! Will check it out as soon as possible.

jakequade commented 1 week ago

Damn, great work on the metadata changes - it looks so good on the testflight version! Works a charm. Thanks so much for everything. Might have a poke around the needs help issues.

fredrikburmester commented 1 week ago

No, thank you! 🔥 the expanded controls are great!

Might have a poke around the needs help issues.

That would be amazing!

fredrikburmester commented 3 days ago

@jakequade This just got released: https://github.com/react-native-google-cast/react-native-google-cast/releases/tag/4.8.3

Should we change our implementation to use this or keep the current one? What do you think?

fredrikburmester commented 2 days ago

@jakequade if you want, please join our discord so we can discuss more!